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位插入逗号;其他情况,不作处理;
最后将处理后的字符进行输出
- 还没有人评论,欢迎说说您的想法!