标签:style blog http color os io 数据 for
此题不仅仅是A+B简单计算的一道题,需要进行字符和数字的灵活转换。
题目描述:
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
输入:
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
输出:
请计算A+B的结果,并以正常形式输出,每组数据占一行。
样例输入:
-234,567,890 123,456,789
1,234 2,345,678
样例输出:
-111111101
2346912
分析:
//题目1003:A+B
/*解题算法: 把输入以字符串形式输入,然后先去掉第一个符号为‘-‘的, 同时用flag = 0,
*变化成 flag = 1来记录该字符串所表示的数为负数. 这样把字符统一处理为没有 ‘-‘的,
*根据题意,处理字符串, 得出字符串所表示的数字的位数, 用numC表示,然后按顺序读取字
*符,将字符转化成数字,然后用pow(10, numC - 1)得出, 同时用SumC来累加这个字符串的
*每个字符得出的数的结果.最后, 根据flag = 1为负数, 把SumC转换成-SumC,然后两个数的
*Sum分别相加,得出结果. 再用一个数组来储存这个结果,最后统一输出,这样做事为了符合
*题列的要求.
*/
代码及详细注释:
1 #include <iostream> 2 #include <cstring> 3 #include <cmath> 4 using namespace std; 5 6 7 int deal(char c[14]) 8 { 9 int SumC = 0;/*把传入的字符化成整形數,用SumC来表示.*/ 10 int cc = strlen(c);/*数组c[]的長度*/ 11 int flag1 = 0; /*标记变化,用来后面用到的判断正负用的*/ 12 int CC = cc;/*看下面的if, 首先, 如果有‘-‘的, 那么把整个字符串去掉的长度减1,因为负号不是数字*/ 13 14 if (c[0] == ‘-‘)/*如果是字符串第一是负号*/ 15 { 16 CC -= 1; /*长度减1,也就是说把它当成正数处理, 比如 -432 长度为4, 处理后为 432, 长度为3*/ 17 flag1 = 1; /*长度减少后, 用flag记录该数是负数的,flag由0变为1*/ 18 } 19 20 int numC = CC - CC / 4;/*用numC表示位数, 比如 234,567,890 有11个字符, 去掉逗号, 一共有 11 - 11/4 = 9个字符*/ 21 22 for (int i = 0; i < cc; i++)/*对整个字符串进行扫描, 此时包括了‘-‘,注意这里是小写的cc,即原字符串*/ 23 { 24 if (c[i] >= 48 && c[i] <= 57) /*如果是ascll码这个范围的,即对应字符‘0‘到‘9‘*/ 25 { 26 SumC += int(c[i] - 48) * pow(10, numC - 1); /*把传入的字符化成整形數,用SumC来表示.累加, 何为numC - 1,比如123,numC表示3位数,那么该数是10^2的, 所以用10^(numC - 1)次方 */ 27 28 numC--;//位数减1 29 } 30 } 31 32 if (flag1 == 1) //如果有‘-‘,flag1 变成了1,那么把这个数按负数处理. 33 { 34 SumC *= -1; //变成 -SumC 35 } 36 return SumC;//返回处理结果 37 } 38 39 int main() 40 { 41 int zhu[100];//限制了测试组数 42 int u = 0;//根据输入,测试u组 43 char a[14];//因爲範圍是+-10^9,最多有14個字符 44 char b[14]; 45 while (cin >> a >> b) 46 { 47 zhu[u] = deal(a) + deal(b);/*调用函数,传入数据处理,最后相加,得出结果, 存入数组中,为后面统一输出*/ 48 u++; 49 } 50 for (int y = 0; y < u; y++) 51 { 52 cout << zhu[y] << endl;//输入结束后, 统一输出答案 53 } 54 return 0; 55 }
运行结果:
(ACM_JD)题目1003:A+B,布布扣,bubuko.com
标签:style blog http color os io 数据 for
原文地址:http://www.cnblogs.com/hlwyfeng/p/3895954.html