快速幂

#include <iostream> using namespace std; long long apow(long long a, long long b) { if (b == 0) return 1; if (b % 2 == 0) return apow(a, b / 2)*apow(a, b / 2); else return a*apow(a, b - 1); } int main() { cout << apow(2,10); } 输出结果 1024 时间复杂度O(log b)

1168:大整数加法

【题目描述】求两个不超过200位的非负整数的和。【输入】有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。【输出】一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。【输入样例】2222222222222222222233333333333333333333【输出样例】55555555555555555555【来源】No题目说了 输入可能有多余前导0 不过没事 把数组开大点#include <iostream> using namespace std; int main() { char str1[500] = {'\0'}; char str2[500] = {'\0'}; cin >> str1>>str2; int len1 = strlen(str1); int len2 = strlen(str2); int arr[600] = { 0 }; for (int i = 0; len1 > len2 ? i < ...