C语言每日一练 2021年10月3日
题目描述
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
分析
完全平方 指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数 。完全平方数是非负数,而一个完全平方数的项有两个。注意不要与完全平方式所混淆。——百度百科
平方数的个位数字只能是 0,1,4,5,6,9 。
代码实现
#include <stdio.h>
#define INTEGER_RANGE 1000000000
int if_complete_square_number(int num);
int main()
{
int cnt = 0;
for(int i = 0; i < INTEGER_RANGE; i++)
{
if((if_complete_square_number(i + 100)) == 1)
{
if(if_complete_square_number(i + 268) == 1)
{
cnt++;
printf("这个数为:%d\n", i);
}
}
}
if(cnt == 0)
printf("不存在满足条件的数字\n");
return 0;
}
int if_complete_square_number(int num)
{
int tmp = 0;
int i = 0;
if(num < 0)
return 0;
tmp = num % 10;
if(tmp != 0 && tmp != 1 && tmp != 4\
&& tmp != 5 && tmp != 6 && tmp != 9)
return 0;
for(i = 0; i < num; i++)
{
if(num == i * i)
return 1;
}
return 0;
}
运行结果
还有另一种题目:
一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?
#include <stdio.h>
#include <math.h>
int main()
{
int x, y;
for(int i = 0; i < 100000; i++)
{
x = sqrt(i + 100);
y = sqrt(i + 100 + 268);
if((x * x == i + 100) && (y * y == i + 368))
printf("这个数为:%d\n", i);
}
return 0;
}
结果:
|