1 条题解

  • 0
    @ 2024-12-24 10:06:03

    C :

    #include<stdio.h>
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            printf("%d",n);
            while(1)
            {
                if(n%2==0)
                {
                    printf("-%d",n/2);
                    n=n/2;
                }
                else
                  {
                          printf("-%d",n+1);
                          n=n+1;
                  }
                if(n==1)
                    break;
            }
            printf("\n");
        }
    }
    
    

    C++ :

    #include <stdio.h>
    int n;
    void run()
    {
    	printf("%d",n);
    	while(n!=1)
    	{
    		if(n%2==1)
    			n++;
    		else
    			n/=2;
    		printf("-%d",n);//这道题唯一值得注意的地方就是不要输出多余的减号!!!每行里减号比数要少一个,所以注意判断。 
    	}
    	printf("\n");
    }
    int main()
    {
    	while(scanf("%d",&n)!=EOF)
    		run();
    	return 0;
    } 
    

    Java :

    import java.util.*;
    public class Main {
                public static void main(String[] args) { 
                  Scanner input = new Scanner(System.in) ;
                  while(input.hasNextInt()){
                      int n = input.nextInt();
                    System.out.print(n+"-");
                      while(n!=1){
                        if(n%2==0){ n=n/2;System.out.print(n);}
                        else {n=n+1;System.out.print(n);}
                        if(n!=1) System.out.print("-");
                        else  System.out.println();
                        }
                    
                    }
                }
            }
    
    • 1

    信息

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