1 条题解
-
0
C :
#include<stdio.h> int main() { int t,n,k,a[200],i; scanf("%d",&t); while(t--) { scanf("%d",&n); k=0; while(n!=1) { if(n%2) { a[k++]=n; n=n*3+1; } else n/=2; } if(k) for(i=0;i<k;i++) printf(i==k-1?"%d\n":"%d ",a[i]); else printf("No number can be output !\n"); } return 0; }
C++ :
#include<stdio.h> int main() { int t,n,k,a[200],i; scanf("%d",&t); while(t--) { scanf("%d",&n); k=0; while(n!=1) { if(n%2) { a[k++]=n; n=n*3+1; } else n/=2; } if(k) for(i=0;i<k;i++) printf(i==k-1?"%d\n":"%d ",a[i]); else printf("No number can be output !\n"); } return 0; }
Pascal :
var i,j,k,l,n,m:longint; a:array[0..1000]of longint; begin readln(n); for i:=1 to n do begin readln(m);k:=0; m:=m*2; while m>1 do begin if m mod 2=1 then m:=m*3+1 else m:=m div 2; if m mod 2=1 then begin k:=k+1;a[k]:=m;end; end; if k=1 then writeln('No number can be output !'); if k>1 then begin for j:=1 to k-2 do write(a[j],' '); write(a[k-1]); writeln; end; end; end.
Java :
import java.util.Scanner; public class Main { public static void main(String[] agrs) { Scanner input=new Scanner(System.in); int v=input.nextInt(); for(int i=1;i<=v;i++) { int s=0;String m="a"; int a=input.nextInt(); while(a!=1) { if(a%2!=0) { String t=String.valueOf(a); m=m.concat(t); m=m.concat(" "); s++; a=a*3+1; } else a=a/2; } if(s!=0) System.out.println(m.substring(1,m.length()-1)); else System.out.println("No number can be output !"); } } }
Python :
# coding=utf-8 n=int(input()) nli=[] for i in range(n): nli.append(int(input())) for j in range(len(nli)): t=[] temp=nli[j] while temp!=1: if temp%2==0: temp=temp/2 else: t.append(int(temp)) temp=temp*3+1 if len(t)==0: print('No number can be output !') else: te='' for k in range(len(t)-1): te=te+str(t[k])+' ' te=te+str(t[len(t)-1]) print(te)
- 1
信息
- ID
- 1983
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者