全国c语言编程大赛考题,全国计算机编程大赛复赛试题2

某幼儿园按如下方法依次给A,B,C,D,E五个小孩发糖果。将全部糖果的一半再加二分之一块糖果发给第一个小孩;将剩下糖果的三分之一再加三分之一块糖果发给第二个小孩;将剩下糖果的四分之一再加四分之一块糖果发给第三个小孩;将剩下糖果的五分之一再加五分之一块糖果发给第四个小孩;将最后剩下的11块糖果发给第五个小孩。每个小孩得到的糖果数均为整数。试确定原来共有多少块糖果?每个小孩各得到多少块糖果?

要求结果的输出格式为

sum=糖果总数

xa=A得到的糖果数

xb=B得到的糖果数

xc=C得到的糖果数

xd=D得到的糖果数

xe=E得到的糖果数

以下是我为实现以上要求而写的,完全能正确实现,请欣赏,如果看了后你有所改进或有别的实现妙方,就请贴出来共同学习与分享吧。让我们为本网站更具实用,可读性强而努力!

#include "stdio.h"

main()

{ FILE *fp;

int sum,xa,xb,xc,xd,xe;

if((fp=fopen("58114_2.dat","w"))==NULL)  /* 创建结果文件 */

{ printf("cannot open this file.\n");

exit(0);

}

sum=0;

while(1)

{ if(60*sum-((sum+1)*30+(sum+1)*10+(sum+1)*5+(sum+1)*3)==660) break;  /* 这用了穷举法,利用了总数减前四人等于第五人的等价关系,等式两边同乘了60 */

sum=sum++;

}

xa=(sum+1)/2;                    /* 以下是求各自所得糖数 */

xb=((sum-xa)+1)/3;

xc=((sum-xa-xb)+1)/4;

xd=((sum-xa-xb-xc)+1)/5;

xe=sum-xa-xb-xc-xd;

fprintf(fp,"sum=%d\nxa=%d\nxb=%d\nxc=%d\nxd=%d\nxe=%d",sum,xa,xb,xc,xd,xe);  /* 结果写进文件 */

fclose(fp);

}

[1]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值