PAT-A1001
程序员文章站
2023-03-26 12:56:30
输入:两个数a,b,-1000000 <= a, b <= 1000000 输出:a+b,并以每3个用逗号隔开的形式展示。 思路一: 1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);判断sum==0时,则输出0; 2)然后将sum存到一个 ......
1001 A+B Format (20)
输入:两个数a,b,-1000000 <= a, b <= 1000000
输出:a+b,并以每3个用逗号隔开的形式展示。
思路一:
1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);判断sum==0时,则输出0;
2)然后将sum存到一个数组num[10]中,将sum数值的低位存到数组的低位(个位存在数组第1位),用一个while循环:num[i]=sum%10,sum=sum/10;i++;
3)将数组num[]从高位到低位进行输出,每逢3位输出逗号,即i%3==0.(注意,输出最后一位后不加逗号)
1 int a,b; 2 int sum,i=0;//存放a+b的值 3 int num[10]; 4 scanf("%d %d",&a,&b); 5 6 sum=a+b; 7 if(sum<0){ 8 printf("-"); 9 sum=-sum;} 10 else if(sum==0){ 11 printf("0");} 12 while(sum>0){ 13 num[i]=sum%10; 14 sum=sum/10; 15 i++;} 16 int j=0; 17 for(j=i-1;j>=0;j--){ 18 printf("%d",num[j]); 19 if(j%3==0&&j!=0){ 20 printf(",");}}
思路二:
1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);
2)判断sum>=1000000,输出printf("%d,%03d,%03d",sum/1000000,sum%1000000/1000,sum%1000);
sum>=1000,输出printf("%d,%03d",sum/1000,sum%1000);
其他情况,输出sum
1 int a,b; 2 int sum;//存放a+b的值 3 scanf("%d %d",&a,&b); 4 sum=a+b; 5 if(sum<0){ 6 printf("-"); 7 sum=-sum;} 8 if(sum>=1000000){ 9 printf("%d,%03d,%03d",sum/1000000,sum%1000000/1000,sum%1000); 10 } 11 else if(sum>=1000) { 12 printf("%d,%03d",sum/1000,sum%1000); 13 } 14 else{ 15 printf("%d",sum); 16 }
思路三:
1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);
2)将sum转换成字符形式,判断sum>=1000000,在倒数第7位插入逗号,并在倒数第3位插入逗号;
sum>=1000,在倒数第3位插入逗号;其他情况,不作处理;
最后将处理后的字符进行输出