Newtopython
诗岑
2020-03-21 21:08
采纳率: 82.8%
浏览 208

为什么代码没有循环?

代码:

#include<stdio.h>
long long power(long long x,long long y,long long p){
    long long sum=1;
    while(y){
        if(y&1){
            sum=sum*x%p;
        }
        y/=2;
        x=x*x%p;

    }
    return sum;
}
int z;//the number of assignments
long long m;
int h;//number of players
long long a[45001],b[45001];
long long s;//the sum
main(){
    scanf("%d",&z);
    int i;
    for(i=0;i<z;i++){
        scanf("%lld",&m);
        scanf("%d",&h);
        int j;
        for(j=0;j<h;j++){
            scanf("%lld %lld",&a[j],&b[j]);
        }
        s=0;
        i=0;
        while(i<h){
            s=s+power(a[i],b[i],m);
            i++;

        }
        printf("%lld",s%m);

    }
}

自测显示,当z=1时答案正确,但z>1时,for循环体中的代码只能执行一次
题目网址:https://ac.nowcoder.com/acm/contest/996/B

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • UFO_SERIESOFSOFT
    UFO_SERIESOFSOFT 2020-03-21 21:37
    已采纳

    每次循环后,i会变成h+2(h>0时)

    点赞 评论

相关推荐