Q1:小数输出时,如果要求不四舍五入?
A1:有个好玩的STL叫 sprintf ,能让你把你的数字就像在屏幕上输出一样,输出到一个字符串里
使用格式为sprintf(目标字符串,"输出形式",原数组)
使用样例
sprintf(ans+1,"%.3lf",l); ans[strlen(ans+1)] = ' '; printf("%s",ans+1);
这样就可以快乐输出了
Q2:为什么模数才10007快速幂int就爆了?
A2:快速幂的底数完全可以比你的模数大,轻轻松松爆int,所以在快速幂关键位置要用longlong
虚假的快速幂
int qp(int a,int x) { int ret = 1; while(x){ if(x&1){ ret *= a; ret %= MOD; } a*=a; a%=MOD; x>>=1; } return ret; }
真正的快速幂
int qp(long long a,int x) { long long ret = 1; while(x){ if(x&1){ ret *= a; ret %= MOD; } a*=a; a%=MOD; x>>=1; } return ret; }
Q3:高精好难背啊真的不想写
A3:高精代码不需要背,清楚自己要维护len和a的正确和规范性就可以了,毒瘤的方面他也不会考