我的剑就是你的剑,辗转相除法(不理解,请留下评论,必回)

小易的升级之路

http://www.nowcoder.com/questionTerminal/fe6c73cb899c4fe1bdd773f8d3b42c3d

判断经验(能力值)的累加问题;
没有越级杀怪,经验正常累加,
若越级杀怪,使用最大公约数(辗转相除法)求出经验,进行累加;

#include<stdio.h>
int main()
{
    int a,b;
    while(~scanf("%d %d",&a,&b)){
        int sz[a],i=0;
        while(i<a){
            scanf("%d",&sz[i]);
            if(sz[i]<=b){b+=sz[i];}//没有越级杀怪,经验正常累加,
            else{
                int max=sz[i],min=b,com=0;//越级杀怪,使用最大公约数求出经验,进行累加;
                while(max%min!=0){//辗转相除法
                    com=max%min;
                    max=min;
                    min=com;
                }
                b+=min;
            }
            i++;
        }
        printf("%d\n",b);
    }
    
    return 0;
}


全部评论

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务