1 条题解

  • 0
    @ 2025-4-12 21:43:15

    C :

    #include<stdio.h>
    int main()
    {
    	int a[100],b[100];
    	int i,x,k,m = 0;
    	scanf("%d",&k);
    	for(x = 0;x<k;x++)	scanf("%d",&a[x]);
    	
    	for(x = 0;x<k;x++)
    	{
    		int count = 0;
    		if(x>0)	printf("\n");
    		for(i = 1;;i++)
    		{
    			if(a[x] == 1)
    			{
    				break;
    			}	
    			else if(a[x]%2 == 0)	a[x] = a[x]/2;
    			else if(a[x]%2 == 1)
    			{
    				b[m] = i;
    				if(b[m]>b[0])   printf(" %d",a[x]);
    				else printf("%d",a[x]);
    				m++;
    				a[x] = a[x]*3+1;
    				count = 1;
    			}
    		}   
    		if (count==0)	printf("No odd number");  
    	}
    	return 0;
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    int main()
    {
    	int n,temp,i,b[100][100],k[100],t[100],a[100],j;
    	cin>>n;
    	for(i=0;i<n;i++)
    		cin>>a[i];
    	for(i=0;i<n;i++)
    	{
    		t[i]=0; 
    		k[i]=0;
    		temp=a[i];
    		while(temp!=1)
    		{
    			if(temp%2==1&&temp!=1)
    			{
    				b[i][t[i]]=temp;
    				t[i]++;
    				temp=temp*3+1;
    				k[i]++;
    			}
    			else	temp/=2;
    		}
    		if(a[i]%2==1) k[i]--;
    	}
    	for(i=0;i<n;i++)
    	{
    		if(t[i]==0)	cout<<"No odd number";
    		else
    		{
    			for(j=0;j<t[i];j++)
    			{
    				if(j!=t[i]-1)	cout<<b[i][j]<<" ";
    				else	cout<<b[i][j];
    			}
    		}
    		if(i<n-1) cout<<"\n";
    	}
    	return 0;
    }
    

    Java :

    import java.util.Scanner;
    
    public class Main{
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		int n = in.nextInt();
    		
    		while(n-->0){
    			int a = in.nextInt();
    			int sum=0;
    			while(true){
    				if(a%2!=0&&a!=1){
    					System.out.print(a+" ");
    					a=a*3+1;
    					sum=1;
    				}
    				else if(a%2!=0&&a/2==1){
    					System.out.print(a);
    					break;
    				}				
    				if(a%2==0){
    					a=a/2;
    					if(a==1&&sum==0){
    						System.out.print("No odd number");
    						break;
    					}
    					else if(a==1){
    						break;
    					}		
    				}					
    				}
    			System.out.println();
    			}
    		}
    	}
    
    
    
    
    • 1

    信息

    ID
    1390
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者