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