/**************************************************************************************************************************************
* Function : test
* Create Date : 2014/03/15
* Author : NTSK13
* Email : beijiwei@qq.com
* Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。
任何单位和个人不经本人允许不得用于商业用途
转载请注明 转自 http://blog.csdn.net/beijiwei
* Version : V0.1
* date : 2014/03/15
* history : V0.1
*****************************************************************************************************************************************
经典c程序 (0002)
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
分析: 假设该整数为 M ,则 M+100=x*x ,M+168=y*y, 则y*y-x*x=68 即为 (y+x)(y-x)=68
那么其实 结论很明显了: 1*68 2*34 4*17 只有中间一组可能
************************************************************************************************************************************/
#include<stdio.h>
#define MY_FUNC 1
#if MY_FUNC
int main()
{
int i=0,j=0;
int result=0;
for(i=1;i<69 ;i++)
for(j=1;j<69 ;j++)
{
if(i==j)
continue;
if((i*i-j*j)==68)
{
result=i*i-168;
printf("i is %d\n",i);
printf("j is %d\n",j);
break;
}
}
printf("Result is %d\n",result);
return 0;
}
// refer answer
#else
/*
.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。
*/
#include "math.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);
}
}
#endif
经典c程序 (0002)---完全平方数
最新推荐文章于 2024-06-15 10:17:12 发布