1 条题解

  • 0
    @ 2025-4-12 21:47:19

    C :

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int n,sum;
        while(1)
        {
            char a[20000];
            scanf("%s",a);
            if(a[0]=='0')break;
            sum=0;
            n=strlen(a);
            for(int i=0;i<n;i++)         //首次处理,期望回十亿之内 
            {
                sum+=(a[i]-'0');          //计数 
                //printf("%d\t",sum);
            }
            sum%=9; 
            if(sum==0)printf("9\n");
            else printf("%d\n",sum);
        }/**/
        return 0;
    }
    
    

    C++ :

    #include <stdio.h>
    
    int DigitalRoot(int num){
    	int root = num;
    	while(root >= 10){
    		root = 0;
    		while(num){
    			root += num%10;
    			num /= 10;
    		}
    		num = root;
    	}
    	return root;
    }
    
    int main(){
    	char strN[1000];
    	while(scanf("%s",strN), strN[0]!='0'){
    		int i=0, n=0;
    		while(strN[i]){
    			n += strN[i]-'0';
    			i++;
    		}
    		printf("%d\n", DigitalRoot(n));
    	}
    
    	return 0;
    }
    
    
    • 1

    信息

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