C 语言学习 3
2015-08-10 16:42
274 查看
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
这个函数中调用了 sqrt 函数,它在 math.h 文件中,我第一次调用这个函数出错,但不是因为我使用的错误,而是程序中的 x、y、z 参数的类型设错了,应该设 long int,它是有符号的,而且应该是 long 型的,否则有可能会溢出。
至于函数中为什么要判断小于 100000,这个真不知道,标记一下,或者谁知道,给个答案。
这里面还有个思维方式的问题,如果你想用开根号函数来做此题,不是不可以,只是仅仅在参数的类型上就很麻烦,如果不用开根号而是用平方来判断,结果是一样的,但是会简单很多。
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#include "math.h" #include "stdio.h" #include "conio.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); /*x为加上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/ if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ printf("\n%ld\n",i); } getch(); }
这个函数中调用了 sqrt 函数,它在 math.h 文件中,我第一次调用这个函数出错,但不是因为我使用的错误,而是程序中的 x、y、z 参数的类型设错了,应该设 long int,它是有符号的,而且应该是 long 型的,否则有可能会溢出。
至于函数中为什么要判断小于 100000,这个真不知道,标记一下,或者谁知道,给个答案。
这里面还有个思维方式的问题,如果你想用开根号函数来做此题,不是不可以,只是仅仅在参数的类型上就很麻烦,如果不用开根号而是用平方来判断,结果是一样的,但是会简单很多。
相关文章推荐
- TS流如何经过RTP封装及其vlc通过打开sdp文件的方式接收
- IO流之字节流
- IBM Python 技术专题
- Redis Tutorial
- CentOS查看端口是否被占用
- CentOS查看端口是否被占用
- CentOS查看端口是否被占用
- ACM装箱问题
- Integer Inquiry
- flume + kafka 基本配置
- 开发规范
- adb连接时出现如下错误CreateProcess failure, error 2
- 经典linux内核面试题
- Android中RelativeLayout各个属性的含义
- hive命令行小窍门
- zoj 1671 Walking Ant 【bfs】
- axure中的变量及函数
- java 验证码生成
- 。net 页面跳转大全
- 如何使用CSS Sprites技术进行图片合并