3G技术应用
题目的意思:
有N个篮子,编号1—N,篮子中有很多金币,每个重w.但是有一个编号的篮子中,每个金币重w-d.女巫从第一个篮子中拿1个金币,第二个篮子中拿2个……第N-1中拿N-1个,第N中不拿,给出这些金币的总重量s,问:是第几个篮子中的金币重量较轻?
题解:
先求1—N篮子金币应有的总重量yuan=w*(1+n-1)(n-1)/2,然后求差值cha=原-s ,再除以金币重量差值d则得出轻金币的个数。若为0,则必在编号N的篮子中;若不为0,得到较轻金币的个数,即为所求编号。
#include
#include
#define LL long long
int main()
{
int w,d,n;
int i;
LL m,sum,ans;
while(scanf(“%d%d%d%lld”,&n,&w,&d,&m)!=EOF)
{
sum=0;
for(i=1;i《n;i++)
sum+=i*w;
ans=sum-m;
if(ans==0)
printf(“%d\n”,n);
else
printf(“%lld\n”,ans/d);
}
return 0;
}
全部0条评论
快来发表一下你的评论吧 !