1 条题解

  • 0
    @ 2025-4-7 21:41:50

    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
    上传者