PAT-A1001

2018-12-04 07:12:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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位插入逗号;其他情况,不作处理;

最后将处理后的字符进行输出

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C语言入门学习和整理 1-3

下一篇:jz_2440_电阻屏触摸驱动