1 条题解

  • 0
    @ 2024-12-24 9:59:26

    C :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
        unsigned int a;
        unsigned int b;
        while(scanf("%d%d",&a,&b) != EOF){
            if(a==0 && b==0)break;
            char temp2[20], temp1[20];
            sprintf(temp1,"%d",a);
            sprintf(temp2,"%d",b);
            int ans = 0;
            for(int i = strlen(temp1),j = strlen(temp2);i >= 0&&j >= 0; i--, j--){
                if(temp1[i]-'0' + temp2[j]-'0' >= 10)ans++;
            }
            if(ans==1) printf("%d carry operation.\n",ans);
            if(ans>1) printf("%d carry operations.\n",ans);
            if(ans==0) printf("NO carry operation.\n");
        }
    
        return 0;
    }
    

    C++ :

    #include "stdio.h" 
    int main() 
    {     
    	int a,b,c;     
    	while(1)     
    	{         
    		int x = 0;         
    		scanf("%d%d",&a,&b);
    		if(a == 0 && b == 0) break;
    		while(a>0 && b>0)
    		{                 
    			if(a%10 + b%10 >= 10)                                      
    				x++;//只是按位相加,1+999只有1个进位!!--不考虑进位带来新的进位。                                                                  
    			a /= 10;                                 
    			b /= 10;
    		}
    		if(x == 0)             
      			printf("NO carry operation.\n");             
         	else 
    			if(x == 1)
    				printf("1 carry operation.\n");
    			else
    				printf("%d carry operations.\n",x);
    	}
    	return 0;
    }
    
    • 1

    信息

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