简单的关于c的问题,急需解决
各位大哥,大姐,狂人们你们好,我刚在学习c语言,才开始学习到语句结构那里,有道题就是想不到方法,老师说这道题要是会了呢,语句结构就掌握的不错了,那这道题是这样子的:
雨淋湿了算术书的一道题,9个数字只能看清4个数字,其中字母Q代表淋湿了的数字:
[Q*(Q3+Q)]的平方=8QQ9,
请编程将这些数找出来,
小弟这是第一次问问题,恳请帮助。
问题点数:20、回复次数:18Top
1 楼jixingzhong(瞌睡虫·星辰)回复于 2006-10-04 08:28:52 得分 0
穷举算法Top
2 楼jixingzhong(瞌睡虫·星辰)回复于 2006-10-04 08:31:16 得分 0
http://www.52wg.org/computer/chengxu/200511/computer_99658.html
看看这里的文章 ~Top
3 楼jixingzhong(瞌睡虫·星辰)回复于 2006-10-04 08:35:26 得分 0
for x=1 to 9
for y=1 to 9
for z=0 to 9
for m=0 to 9
for n=0 to 9
if pow(x*(y*10+3+z), 2) == 8*1000 + m*100 + n*10 + 9
next n
next m
next z
next y
next x
end
Top
4 楼whypp(绝望生鱼片)回复于 2006-10-04 08:42:10 得分 0
希望对你有帮助 (自己改一下)
for(Q=0;Q<N;Q++) #
if([Q*(Q3+Q)]*[Q*(Q3+Q)]==8QQ9)
printf("%d",Q);Top
5 楼lkpo(lkpo)回复于 2006-10-04 22:50:50 得分 0
好像没答案,你有没有抄错题?
我的源码
void main()
{
int Q=1;
int k1,k2;
for(Q;Q<=9;++Q)
{
k1=Q*(3*Q+Q)*Q*(3*Q+Q);
k2=100*Q+10*Q+8009;
cout<<k1<<' '<<k2<<endl;
if(k1==k2)
cout<<Q<<endl;
}
}
Top
6 楼shisan107(拾叁)回复于 2006-10-05 15:18:02 得分 0
汗,楼上看清题目没有?Q不是一个变量,而代表每个不确定的数字。几个Q都很可能不是同一个数字。Top
7 楼Arthur_()回复于 2006-10-05 20:46:57 得分 0
,老师说这道题要是会了呢,语句结构就掌握的不错了
=============================================
那就看
jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) ( ) 信誉:102 Blog
???
怎麼搞vb了Top
8 楼lkpo(lkpo)回复于 2006-10-05 22:06:53 得分 0
Q不是同一个数吗?不同的话要用不同字母,我再想想Top
9 楼iambic()回复于 2006-10-05 22:39:53 得分 0
这种题方法很多,你所谓的编程求解要求太不明确了。
正常解法:
[Q*(Q3+Q)]的平方=8QQ9
符合8QQ9的平方数只有一个:
93*93 = 8649
再求
Q*(Q3+Q) = 93
93 = 1*93 = 3*31
1*(93+0) = 93
或者
3*(23+8) = 93
所以答案是两组:
(1*(93+0))^2 = 8649
(3*(23+8))^2 = 8649
我觉得当一件事完全不需要计算机就可以得到结果的时候,你怎么编程都不过分。
你可以按我刚才的逻辑一步步使用计算机来解,也可以5循环穷举,当然也可以直接让计算机输出你已知的结果。
Top
10 楼wd_net()回复于 2006-10-08 14:45:34 得分 0
对啊,其它的5个数字都是不同的数字,也就是说5个q都是不一样的数字,
看了大侠们的提示我好象有了些思路了,恩,回去试一下了,谢谢你们!Top
11 楼wd_net()回复于 2006-10-08 14:47:29 得分 0
凉咖啡你说的话是什么意思啊?我好象有点不太明白啊/Top
12 楼Arthur_()回复于 2006-10-08 14:51:12 得分 0
我記得以前聯繫循環用計算水仙
其實就是訓練使用循環和IFTop
13 楼mathe()回复于 2006-10-08 14:56:26 得分 0
不用编程,根据8QQ9是完全平方数,可以得到90^2<=8QQ9<=94^2,
根据尾数为9,得到8QQ9=93^2=8649
左边Q*(Q3+Q),所以第一个Q是93的一位数因子,只能是3
所以左边为
3*(Q3+Q)=93=3*(23+8)Top
14 楼wd_net()回复于 2006-10-08 14:57:41 得分 0
iambic()
我觉得当一件事完全不需要计算机就可以得到结果的时候,你怎么编程都不过分。
你好啊,我觉得你说的话顶有意思哦,你都已经告诉我答案了还有什么意思啊,我很想知道解题的思路,不过你的话很有道理的,而且我也想过用5个循环来解题。
首先这个数的平方要满足条件,也就是要等于8QQ9,接着就用一个for循环和4个while循环来分别找出第一个至最后一个数,然后分别输出,不知道这样能不能求解,我回去试试。
祝你们开心!
Top
15 楼wbohome()回复于 2006-10-08 16:13:55 得分 0
#include "stdio.h"
#include "math.h"
void main()
{
int i,j,k,m,n;
for(j = 0; j <= 9; j++)
{
for(k = 0; k <= 9; k++)
{
for(m = 0; m <= 9; m++)
{
for(n = 0; n <= 9; n++)
{
for(i = 0; i <= 9; i++)
{
if(pow(i*(j*10 + 3 + k),2) == (m * 100 + 8000 + n * 10 + 9))
{
printf("i=%d,j=%d,k=%d,m=%d,n=%d",i,j,k,m,n);
printf("\n");
}
}
}
}
}
}
}
Top
16 楼wd_net()回复于 2006-10-11 13:25:53 得分 0
恩!你是狂人,完全正确!
诶!郁闷那,老师说要是这道题做出来的话呢,语句结构就掌握的不错了,这道题我到是做出来了,但是还有好多的例子不会做,真是郁闷那!
比如说:
遍一个程序统计学生的平均成绩,人数可以是任意的,直到输入的成绩是-1的话呢,结束程序,并输出平均成绩。
我晕那,编了好久,愣是没有编出来,找人讲了一遍,但是好象还是没有明白,诶,怎么办?好着急!·Top
17 楼wd_net()回复于 2006-10-11 13:31:10 得分 0
谁说说思路,主要是思路,Top
18 楼wd_net()回复于 2006-10-11 15:37:52 得分 0
jixingzhongTop




