您的位置:首页 > 其它

C 语言学习 3

2015-08-10 16:42 274 查看
【程序3】

题目:一个整数,它加上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,这个真不知道,标记一下,或者谁知道,给个答案。

这里面还有个思维方式的问题,如果你想用开根号函数来做此题,不是不可以,只是仅仅在参数的类型上就很麻烦,如果不用开根号而是用平方来判断,结果是一样的,但是会简单很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: