PAT-A1001
2018-12-04 07:12:55来源:博客园 阅读 ()
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_电阻屏触摸驱动
- 1001 A+B Format (20 分) 2018-12-09
- 利用IFormattable接口自动参数化Sql语句 2018-06-18
- C#.net 之货币转换 2018-06-18
- 初识序列化和反序列化,使用BinaryFormatter类、ISerializabl 2018-06-18
- Test failed.尝试加载Oracle客户端库时引发BadImageFormatEx 2018-06-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash