欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PAT-A1001

程序员文章站 2022-05-18 18:22:09
输入:两个数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位插入逗号;其他情况,不作处理;

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