我的剑就是你的剑,辗转相除法(不理解,请留下评论,必回)
小易的升级之路
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;
}