poj1003求助啊,哪里错了,answer error。。 10

P1003HangoverTimeLimit:1000MSMemoryLimit:10000K描述用一叠纸牌向桌子外摆(如图),你能摆多远呢?如果你有一张牌,你可以是他的... P1003 Hangover

Time Limit: 1000MS
Memory Limit: 10000K
描述

用一叠纸牌向桌子外摆(如图),你能摆多远呢?如果你有一张牌,你可以是他的 一半超过桌面,(我们默认牌必须垂直于桌子)。如果有两张,我们可以让第一张牌摆的超过第二张一半,然后把第二张牌摆的超过桌子1/3,也就是说你摆的纸牌超过桌子1/2 + 1/3 = 5/6个牌的长度。也就是说,如果你有n张牌,那么你摆的牌就会超过桌子1/2 + 1/3 + 1/4 + ... + 1/(n + 1)个牌长。其中第一张牌超过了第二张1/2个牌长,第二张超过了第三张1/3个牌长,第三张超过了第四张1/4个牌长……最后一张·超过了桌子1/(n+1)个牌长,
输入

输入包括一组或者多组数据,最后以0.00结尾。每三组数据包括一个实数(0.01<=n<=5.20). n精确到小数点之后两位。
输出

请输出至少需要多少张牌才能摆出桌子n的张数。格式参照样例。
Sample input

1.00
3.71
0.04
5.19
0.00
Sample output

3 card(s)
61 card(s)
1 card(s)
273 card(s)

//code:

#include<stdio.h>
int main()
{
float n;
int count=2;
scanf("%f",&n);
while(n>0)
{
n-=1.0/count;
count++;
//1/2+1/3+……+1/x>=n
}
if(count-2)
printf("%d card(s)\n",count-2);
return 0;
}
展开
 我来答
匿名用户
2016-05-13
展开全部
#include#includeint check(int x){int i;for (i = 2; i (x / 2 + 1)) //i肯定比1大,只需要判断i是循环结束的值还是break的值return 0;return 1;}int main(){int x, y;int result, a, b;while (scanf("%d%d", &x, &y) != EOF) {if (x == 0 && y == 0)break;bool okay = true;for (a = x; a <= y; a++){result = a*a + a + 41;b = check(result);if (b == 1){printf("Sorry\n");okay = false;break;}}if (okay) printf("OK\n"); //没有okay的判断如果是Sorry那还要输出OK}return 0;}以上代码已经AC
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式