您的位置:首页 > 编程语言 > C语言/C++

C语言编程100例:3

2017-04-03 16:14 239 查看
题目:一个正整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

下面是本人新手写的代码。

//一个正整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include<math.h>
#include<stdio.h>
int perfect_square(int);
int main(void){
int i,j,k;
for(i=1;;i++){
if((j=perfect_square(i+100))&&(k=perfect_square(i+168))){
printf("%d %d \n",j,k);
break;
}
}
printf("%d",i);
return 0;
}
int perfect_square(int x){
int i;
for(i=1;i*i<=x;i++){
if(i*i==x){
return i;
}
}
return 0;
}

对比一下高手写的代码,代码来源是http://www.runoob.com/cprogramming/c-exercise-example3.html

#include <stdio.h>
#include "math.h"

int main() {
long int i,x,y;
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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 编程