问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

杭电2103

发布网友 发布时间:2022-04-29 06:40

我来回答

3个回答

热心网友 时间:2022-06-20 18:27

1)按题目应该是k=10000,而不是1000,在这里因为直接用int计算10000会溢出,所以令k=1,最后打印的时候再加上4个零。
2)整个计算过程都没有用到读入的a的值,即题目中规定可以生的孩子数M。我估计你的
if(i>b)
p=i;
这里,应该是用i>a判断。
3)没有考虑罚款为零的情况,即N小于M且没有生过男孩后在生。所以p的初值修改为b。
4)没有考虑允许生的孩子数是零的情况,即M=0。所以这里将if(i>a)判断往前移。
5)在生的孩子数多于M或者生了男孩后,给p赋值,在需不需要减一上,似乎错了。
以下是在你的基础上改的AC代码
#include<stdio.h>
int main()
{
//freopen("in.txt", "r", stdin);
int a,b,i,k,p,s,t,f[100];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
for(i=1;i<=b;i++)
scanf("%d",&f[i]);
p=b; // 没有违规
for(i=1;i<=b;i++)
{
if(i>a) // 超过了允许生的数量M
{
p=i-1;
break;
}
if(f[i]==1) // 生了一个男孩
{
p=i;
break;
}
/*if(i>b)
p=i;*/
}
s=0;
k=1;
for(i=1;i<=(b-p);i++)
{
s+=k;
k*=2;
}
if (!s)
printf("0 RMB\n");
else
printf("%d0000 RMB\n",s);
}
return 0;
}来自:求助得到的回答

热心网友 时间:2022-06-20 18:28

/*
先给你一组测试数据:
1
2 3
0 0 0
另外你后面不需要多加一行printf("\n");
还有直接用int进行运算可能会溢出
给你一段AC的代码对照着看一下吧
*/
#include<stdio.h>
int main()
{
int T,n,m,a[50],i;
int pow = 1,ans = 0,boy = 0;
scanf("%d",&T);
while(T-- && scanf("%d %d",&n,&m))
{
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<m;i++)
{
if(boy || i >= n){
ans += pow;
pow *= 2;
}
if(a[i] == 1) boy = 1;
}
if(ans == 0)
printf("0 RMB\n");
else printf("%d0000 RMB\n",ans);
}
}

热心网友 时间:2022-06-20 18:28

【题目大意】
国家要实行计划生育,但是为了照顾到某些家庭希望能生个男孩的愿望,所以总统颁布了一条生育法令。给每个家庭一个生育孩子的限额M,就是表示一个家庭最多能生几个孩子,但是如果一旦生了男孩的话,就不能再生了,即使你还没有达到生育的限额。对于违规的家庭,第一次罚10000,第二次就罚20000,第三次就罚40000,以此类推,就是一个等比数列了,之后罚款都是之前的2倍。现在题目给你限额M和每个家庭实际生了几个孩子N,问你这个家庭一共要罚多少钱。

【解题思路】
这道题的话,我是把它分成两段做,实际生孩子的数目在国家允许的范围内为一段,超过的部分分为一段,进行单独处理。另外为了进行判断是否要罚钱了,我定义了一个变量status 来标记该家庭已经生出男孩了。之后生孩子都是违规的,用一个变量NumOfbreak来统计违规次数,最后根据违规次数,计算出总的罚钱数额。这道题因为少考虑了一种情况,通通生女的,并且超过限额,导致WA了一次哦。

#include <stdio.h>
#include <math.h>
int main()
{
int NumOfTest;
int i,j;
int NumOfBaby;
int totalbaby;
int status;
int IsBoy;
int NumOfBreak;
long sum;
/*freopen("e://1.txt","r",stdin);*/
while (scanf("%d",&NumOfTest)!=EOF)
{
for (i=0;i<NumOfTest;i++)
{
status = 0;
sum = 0;
NumOfBreak = 0;
scanf("%d%d",&NumOfBaby,&totalbaby);
for (j=1;j<=totalbaby;j++)
{
scanf("%d",&IsBoy);
if (j<=NumOfBaby)
{
if(IsBoy)
{
if (!status)
{
NumOfBreak=-1;
status = 1;
}
}
}
else
{
if (IsBoy)
{
status=1;
}
}
if (status||j>NumOfBaby)
{
NumOfBreak++;
}
}
if (NumOfBreak==-1||NumOfBreak==0)
{
printf("0 RMB/n");
}
else
{
sum = pow(2,NumOfBreak)-1;
printf("%d0000 RMB/n",sum);
}
}
}
return 0;
}

望采纳哦~ 有问题再问哦~ o(∩_∩)o
杭电acm 1716无法qccepted,求高手帮忙!!(wrong answer) 同时我怀疑...

问题在于没有实现以下输出格式要求:(1)最后一组数据后面没有空行 (2)千位数字相同的在同一行,即如果第1位不同,则应换行,而且行尾不能有空格;(3)输出4位数,即第1位是0不要输出 也没有实现"如果四张卡片都是0,则输入结束"的要求.以下修改AC:include &lt;stdio.h&gt; include &lt;string.h&gt; int main(...

162103 210314 杭电 智慧杭电 杭电考研 杭电acm 杭电研究生院 杭电考研难吗 杭州电子科技大学
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男人阴毛瘙痒是怎么回事 在上酒桌前怎样准备可以让自己不容易醉? 应酬喝酒时,怎么控制自己不喝多? 应酬喝酒躲不掉,又害怕喝醉难受,咋办? 质子和中子的转化关系是什么? 湖北会计初级什么时候报名 看看明星给孩子起的名字,轻易知道是香港还是内地的 ipad停用知道密码怎么解 ipadair1不知道密码怎么恢复出厂设置 以前开通过支付宝可现在忘记了账号和密码了怎么办 用4个可以造句100字以上 空气炸锅做薯条好吃吗 个可以造哪些词 炸锅版薯条怎么做好吃,空气炸锅版薯条的家常做法 多威P2103A好还是p2107D好 个可以组什么词语 惠普8710 打印机 原装955XL墨盒在哪里加墨水? 河南省濮东风湿关节炎胶囊国家专利申请号92103900.0濮卫药制注字(1998)P2103-105是不是正品谢谢 wf-6593打印机怎么加墨水 苹果电脑故障码-2103f 求助复合MOS管P2103HVG可以用什么管代换! 有高手么?尼桑阳光无钥匙一键13款加油门没反应,故障灯亮,报故障码是p2103.更换了节气门还是一 丰田汉兰达故障代码p2103是什么坏了 怎样才能做好平面设计的工作? 东风日产尼桑轩逸1.6p2103故障码怎么检修? 怎么看待现在的平面设计? 有哪家化学名称叫P-2103 初级环氧树脂P-2103淡黄色起什么作用 日产阳光P 2103故障码怎么解决? 介绍一些国外修图好的摄影网站地址,要求有大图 求以椭圆x212+y28=1的焦点为焦点,且经过点P(1,2103)的椭圆的标准方程 用三个&quot;可以&quot;造句 三个可以造句。 台湾话日常用语是什么? 用三个可以造句 用三个可以和一个也可以造句 台湾的一些日常用语 用两个可以写两句话 一个个可以填什么? 弟弟用台湾话怎么说 用3个可以造句,要优美 用四个可以造句 台湾的日常用语有哪些? 用4个可以造句可以吗? 台湾人日常说什么语言? 用三个可以,一个也可以造句 苹果手机x后屏碎了维修多少钱 台湾常用的地方话^_^ 苹果x前后屏破了换的多少钱 什么情况下营业执照办不了