| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 622 人关注过本帖
标题:[求助] 很难的计算题 求助
只看楼主 加入收藏
mzd1168
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-2
收藏
 问题点数:0 回复次数:8 
[求助] 很难的计算题 求助

eebZJMcQ.txt (265 Bytes) [求助] 很难的计算题 求助


2007-08-09 11:28
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 
a:第一天卖掉的西瓜,b:第二天卖掉的西瓜,c:第三天卖掉的西瓜
x:总数

a=0.5x+0.5
b=0.5(x-a)+0.5
c=0.5(x-a-b)+0.5

a+b+c=x

应该是7

但是程序甚为难写啊

曾经的曾经已不在
2007-08-09 15:27
virusplayer
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-8-2
收藏
得分:0 
你可以倒过来想啊
第一天是○个,第二天是第一天的二倍加上一个,。。。。。。。。。。。。

2007-08-09 16:08
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 

用穷举法倒是能做,但是递归法不好做,还没弄出来
[CODE] private void QiongJu()
{
for (int i = 0; i < 100; i++)
{
double a = (i * 0.5 + 0.5);
if (a*10%10!=0||a == 0||a<0)
continue;
else
{
double b = ((i - a) * 0.5 + 0.5);
if (b*10%10!=0||b == 0||b<0)
continue;
else
{
double c = ((i - a - b) * 0.5 + 0.5);
if (c*10%10!=0||c == 0||c<0)
continue;
else
{
if((i-a-b-c)==0)
MessageBox.Show(i.ToString ());
}

}
}
}
}[/CODE]


曾经的曾经已不在
2007-08-09 16:12
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 
楼主的题目
[QUOTE]
现有若干西瓜出售
假设第一天卖掉总数的一半再加半个西瓜
第二天卖掉第一天剩下的西瓜的一半再加半个
第三天卖掉第二天剩下的西瓜的一半再加半个
这样所有的西瓜就全部卖完了
编程求原来一共有多少个西瓜。
[/QUOTE]

曾经的曾经已不在
2007-08-09 16:14
virusplayer
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-8-2
收藏
得分:0 

是啊
反过来想啊
就是逆向思维

2007-08-09 16:18
天堂落日
Rank: 2
等 级:论坛游民
威 望:2
帖 子:182
专家分:10
注 册:2007-6-17
收藏
得分:0 

最后一天瓜早晨瓜数为: 1
倒数第二天早晨西瓜数为: 1*2+1=3
倒数第三天的早晨西瓜数为: 3*2+1=7
倒数第四天的早晨西瓜数为: 7*2+1=15
…………………………………………
由此可以看出,前天西瓜数目即为当天西瓜数的二倍加一:


class Program
{
static void Main(string[] args)
{
int day,num=0;
System.Console.Write(\" ^_^ 西瓜是多少天卖完的啊?\n请输入一个整数>> \");
day = Int32.Parse(System.Console.ReadLine());
for (int i = 0; i <= day-1; i++)
{
num = num * 2 + 1;
}

System.Console.WriteLine(\"\n西瓜的总是是:{0}\", num);
System.Console.ReadKey();
}
}

[此贴子已经被作者于2007-8-9 20:47:15编辑过]


2007-08-09 20:40
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 
以下是引用天堂落日在2007-8-9 20:40:19的发言:

最后一天瓜早晨瓜数为: 1
倒数第二天早晨西瓜数为: 1*2+1=3
倒数第三天的早晨西瓜数为: 3*2+1=7
倒数第四天的早晨西瓜数为: 7*2+1=15
…………………………………………
由此可以看出,前天西瓜数目即为当天西瓜数的二倍加一:


class Program
{
static void Main(string[] args)
{
int day,num=0;
System.Console.Write(\" ^_^ 西瓜是多少天卖完的啊?\n请输入一个整数>> \");
day = Int32.Parse(System.Console.ReadLine());
for (int i = 0; i <= day-1; i++)
{
num = num * 2 + 1;
}

System.Console.WriteLine(\"\n西瓜的总是是:{0}\", num);
System.Console.ReadKey();
}
}



我怎么觉得是2倍减1呢

[此贴子已经被作者于2007-8-10 8:38:06编辑过]


曾经的曾经已不在
2007-08-10 08:36
天堂落日
Rank: 2
等 级:论坛游民
威 望:2
帖 子:182
专家分:10
注 册:2007-6-17
收藏
得分:0 
因为每天卖掉的瓜都是总数的一般加半个
我们只知道剩下的西瓜数num,这个 num+0.5 就是前天的一半了
所以总数应该是(num+0.5)*2 = num*2+1 才对吧

以上个人意见,欢迎各位高手来讨论

2007-08-10 21:27
快速回复:[求助] 很难的计算题 求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017935 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved