p次方求和
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
- 一个很简单的问题,求1^p+2^p+3^p+……+n^p的和。
- 输入
- 第一行单独一个数字t表示测试数据组数。接下来会有t行数字,每行包括两个数字n,p,
输入保证0<n<=1000,0<=p<=1000。
- 输出
- 输出1^p+2^p+3^p+……+n^p对10003取余的结果,每个结果单独占一行。
- 样例输入
-
2 10 1 10 2
- 样例输出
-
55 385
-
AC码:
-
#include<stdio.h> #define N 10003 int main() { long long T,n,p,i,b,t,a,sum; // 必须用long long scanf("%d",&T); while(T--) { scanf("%lld%lld",&n,&p); if(n==0) // md,坑爹,题目明明n是大于0的 { // 但没有这个条件,就是不通过!!! printf("0\n"); continue; } sum=1; for(i=2;i<=n;i++) { a=i; b=p; t=1; while(b) { if(b&1) t=(t*a)%N; a=(a*a)%N; b=b/2; } sum=(sum+t)%N; } printf("%d\n",sum); } return 0; }
English learning method ---音标学习的瓶颈
时间: 2024-10-22 22:04:38