1 条题解
-
1
题解来喽!
#include <iostream> #include <cstring> using namespace std; int main(){ char a[505] = {}, b[505] = {}; //输入的加数 int a1[505] = {}, b1[505] = {}; //转换后参与运算的加数 int lena, lenb; //a,b的位数 // 1. 使用字符数组存储数据 cin >> a >> b; lena = strlen(a); //获取A,B的位数 lenb = strlen(b); // 2. 将数组内字符倒序,并转化为数字 for (int i = 0; i < lena; i++) //倒序转换A { //作答区域1:将数组a转化为数字,并倒序存储到数组a1 a1[lena - 1 - i] = a[i] - '0'; } for (int i = 0; i < lenb; i++) { b1[lenb - 1 - i] = b[i] - '0'; } int res[100] = {}; //加法运算结果 int num = 0; //最终按位运算的次数 int in = 0; //进位变量 // 3. 枚举运算次数,按位运算 num = max(lena, lenb); for (int i = 0; i < num; i++) { //作答区域2:a1与b1按位运算,并加上进位 res[i] = a1[i] + b1[i] + in; in = res[i] / 10; res[i] %= 10; } //4、判断最高位进位 if (in > 0) { res[num] = in; num++; } // 5. 倒序输出 for (int i = num - 1; i >= 0; i--) { cout << res[i]; } return 0; }
- 1
信息
- ID
- 465
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 11
- 已通过
- 4
- 上传者