经典c程序 (0002)---完全平方数

/**************************************************************************************************************************************
* 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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值