数据结构课:一个在结构体内初始结构体的办法:
# M /3001 计算a的n次方
注意初始化只会初始化一位
那么我们就有一个模版了:
#include <iostream>
using namespace std;
#define N 1000
void mult(int a, int num[])
{
int sum, b = 0;
for(int i = 0; i < N; i++)
{
sum = num[i] * a + b;
num[i] = sum % 10;
b = sum / 10;
}
}
void implement(int a, int n, int num[])
{
while(n--) mult(a, num);
}
int main()
{
int count;
cin >> count;
for(int i = 0; i < count; i++)
{
int a, n, num[N] = {1}, flag = 0;
cin >> a >> n;
implement(a, n, num);
cout << "case #" << i << ":" << endl;
for(int j = N - 1; j >= 0; j--)
{
if(num[j]) flag = 1;
if(flag == 1) cout << num[j];
}
cout << endl;
}
return 0;
}
计算n!右端0的个数
这个很简单,先判断n最大 >= 5的a次方;然后直接输出(n/5 + n / 25 +…+ n / 5^a)就完事了
第一位数字
妈的,绝了
取对数:e为底: log(x) e的幂 exp(x)
10为底 log10(x)
其他的n:double a=log(x)/log(n)
取小数部分: double a;a = a - (int)a;
bitints
反转字符串的方法!!!
reverse(s.begin(),s.end());在algorithm库当中调用
while(getline(cin, str)) 在遇见EOF时会自动停止读入?(亲测有效)
然后就是记得字符串转整形时-‘0’之类的的老生常谈了