鱼C论坛

 找回密码
 立即注册
查看: 2769|回复: 6

小鱼老师的课后作业题,求指点

[复制链接]
发表于 2019-10-15 09:29:32 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 aluoa 于 2019-10-16 12:23 编辑

/*一个整数,它加上100后是一个完全平方数,在加上168又是一个完全平方数,请问该数是多少?

#include<stdio.h>
#include<math.h>
int main()
{
    int x,p,q;
    double y,z;
    for(x=0;x<100000;x++)
    {y=sqrt(x+100);
    z=sqrt(x+268);
    if(((int)y==y)&&((int)z==z))
    {printf("%d\n",x);}}
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-15 10:07:36 | 显示全部楼层
if(((int)y==y)&&((int)z==z))
这段表达什么意义看不太懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-15 10:46:58 | 显示全部楼层
      sqrt() 返回的是个双精度数,如果这个数恰好是个整数,例如,2.0,3.0,4.0 等,那么,这个数取整以后,会与原数相等。也就是说,据此判断,被开方的数是不是一个完全平方数。如果 (int) y == y,那么,就说明 x + 100 是一个完全平方数,如果 (int) z == z,说明 x + 268 是一个完全平方数。
      所以,这句代码:
if(((int)y==y)&&((int)z==z))
      想表达的意思是:如果 x + 100 和 x + 268 同时是完全平方数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-16 11:26:07 | 显示全部楼层
Hoiste 发表于 2019-10-15 10:07
if(((int)y==y)&&((int)z==z))
这段表达什么意义看不太懂

就是想说明x+100是一个完全平方数,就是整形数据,才这样表达
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-16 11:26:41 | 显示全部楼层
jackz007 发表于 2019-10-15 10:46
sqrt() 返回的是个双精度数,如果这个数恰好是个整数,例如,2.0,3.0,4.0 等,那么,这个数取整以 ...

那为什么编译的结果就是不对呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-16 11:31:55 | 显示全部楼层
aluoa 发表于 2019-10-16 11:26
就是想说明x+100是一个完全平方数,就是整形数据,才这样表达

明白了,最近刚学,一时间没有想通
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-16 12:55:19 | 显示全部楼层
#include<stdio.h>
#include<math.h>
int main()
{
    int x,p,q;
    double y,z;
    for(x=0;x<100000;x++)
    {y=sqrt(x+100);
    z=sqrt(x+268);
    if(((x+100)==y*y)&&((x+268)==z*z)))
    {printf("%d\n",x);}}
    return 0;
}
程序这样编写就可以,但是原本程序不清楚错在哪里,求指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 21:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表