intmain() { char str[1000]; cin.getline(str, 1000); // 使用cin.getline替代gets int n = strlen(str); for (int i = 0; i < n; i++) { int j = i; while (j < n && str[j] != ' ') j++; for (int k = i; k < j; k++) cout << str[k]; cout << endl; i = j; } return0; }
// 实现两个大整数的加法函数 vector<int> add(vector<int> a, vector<int> b){ if (a.size() < b.size()) returnadd(b, a); // 确保 a 的长度大于或等于 b
vector<int> c; // 存储结果的向量 int t = 0; // 进位
// 遍历较长的向量 a for (int i = 0; i < a.size(); ++i) { t += a[i]; // 累加 a 的当前位 if (i < b.size()) t += b[i]; // 如果 b 还有对应的位,则累加 b 的当前位 c.push_back(t % 10); // 将当前位的结果存入 c t /= 10; // 更新进位 }
// 如果有剩余的进位,则加入结果 if (t) c.push_back(t);
return c; }
intmain(){ // 读取两个大整数的字符串 cin >> s1 >> s2;
// 将字符串转换为向量,低位在前 for (int i = s1.size() - 1; i >= 0; --i) a.push_back(s1[i] - '0'); for (int i = s2.size() - 1; i >= 0; --i) b.push_back(s2[i] - '0'); //在C++中,字符(char)和整数(int)之间有一定的对应关系。具体来说,字符 '0' 到 '9' 的ASCII值分别是48到57。为了将字符 '0' 到 '9' 转换为对应的整数0到9,需要减去字符 '0' 的ASCII值。这是因为字符 '0' 的ASCII值是48,所以减去48就得到了对应的整数值。
// 计算两个向量的和 auto ans = add(a, b);
// 逆序输出结果 for (int i = ans.size() - 1; i >= 0; --i) printf("%d", ans[i]);
vector<int> div(vector<int> a, int b, int &r){ vector<int> c; r = 0; for (int i = a.size()-1; i >= 0; i--) { r = r*10 + a[i]; c.push_back(r / b); r = r % b; } reverse(c.begin(), c.end()); return c; }
intmain(){ string a; int b; cin >> a >> b; vector<int> A; for (int i = a.size() - 1; i >= 0; i--) { A.push_back(a[i] - '0'); } int r = 0; auto C = div(A, b, r); for (int i = C.size() - 1; i >= 0; i--) { printf("%d", C[i]); } cout << endl << r << endl; return0; }