c语言小新求助
想求一个只用循环结构和条件语句的结构,要求是:求个数x,x加100是一个完全平方数,再加168还是一个完全平方数,输出这个数。实在想不出来了,求助谢谢。 本帖最后由 jackz007 于 2019-11-11 00:14 编辑真是没有想到啊,楼主,上个帖子不就是求助这个问题吗,连 "最佳答案" 都给了别人,怎么还在求助啊?
#include <stdio.h>
#include <math.h>
main(void)
{
int d , e , k ;
for(k = 0 ;; k ++) {
d = (int) sqrt(k + 100) ;
e = (int) sqrt(k + 168) ;
if(d * d == k + 100 && e * e == k + 168) {
printf("the number that corespounding the demond : %d\n" , k) ;
break ;
}
}
return 0 ;
}
编译、运行实况:
C:\Bin>g++ -o x x.c
C:\Bin>x
the number that corespounding the demond : 156
C:\Bin>
sqert 本帖最后由 倒戈卸甲 于 2019-11-11 19:17 编辑
其实楼主可以自己多想想,能想出整数是奇数与偶数的合集,楼主具备一定的数学能力的。我也提出了改进算法:完全平方数必然是某个比它小的整数的完全平方。完全只使用你用过的语法(甚至不用for语句),代码如下:
#include <stdio.h>
void main()
{
int x, a, b,tidai1, tidai2;
x=a=b=tidai1 = tidai2 = 0;
while (tidai1+tidai2!=2)
{
a=b=tidai1 = tidai2 = 0;
while (a < x + 100)
{
if (a*a == x + 100)
{
tidai1 = 1;
}
a++;
}
while (b < x + 168)
{
if (b*b == x + 168)
{
tidai2 = 1;
}
b++;
}
x++;
}
printf("%d\n", x-1);
} jackz007 发表于 2019-11-11 00:09
真是没有想到啊,楼主,上个帖子不就是求助这个问题吗,连 "最佳答案" 都给了别人,怎么还在求助啊 ...
想问一个问题,两个分号之间的条件是k任意取吗?
for(k = 0 ;; k ++) liuyanxiong 发表于 2019-11-13 12:34
想问一个问题,两个分号之间的条件是k任意取吗?
for(k = 0 ;; k ++)
是放弃判断的意思,你没看到循环体里有 break 语句吗,这么循环的逻辑就是,循环,直到找到这个数为止。 jackz007 发表于 2019-11-13 13:16
是放弃判断的意思,你没看到循环体里有 break 语句吗,这么循环的逻辑就是,循环,直到找到这个数 ...
如果找到了符合条件的数,那之后的数是不是就没法判断了
liuyanxiong 发表于 2019-11-13 20:08
如果找到了符合条件的数,那之后的数是不是就没法判断了
难道你还想找出多个?我试过,只能找到 1 个,不信的话,你把 break 去掉,在 for 语句中,补上 k 的循环上限自己试试看。 jackz007 发表于 2019-11-13 20:11
难道你还想找出多个?我试过,只能找到 1 个,不信的话,你把 break 去掉,在 for 语句中,补上 k...
确实没有,再问一个,你那个break应该可有可无吧 liuyanxiong 发表于 2019-11-13 20:20
确实没有,再问一个,你那个break应该可有可无吧
如果没有真的可以吗?
真的可以吗?
真的可以吗?
真的不可以!!!
如果没有 break 就是死循环! jackz007 发表于 2019-11-13 20:25
如果没有真的可以吗?
真的可以吗?
真的可以吗?
可是我得出答案了{:10_291:}
#include <stdio.h>
#include <math.h>
void main()
{
int d , e , k ;
for(k = 0 ;; k ++) {
d = (int) sqrt(k + 100) ;
e = (int) sqrt(k + 168) ;
if(d * d == k + 100 && e * e == k + 168) {
printf("the number that corespounding the demond : %d\n" , k) ;
}
}
} liuyanxiong 发表于 2019-11-14 12:43
可是我得出答案了
#include
#include
是得出答案了,可是,你的程序呢,是不是就死了?
页:
[1]