这里有一道题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
这个题目,我们想到的是,通过循环,然后测试,看数据是否符合规定。我们知道如果一个数是完全平方数,则这个数可以进行开平方运算。因此此程序的关键点就是,这个数开平方后的数再相乘等于此数。根据这个逻辑。则程序编写如下所示:
#include <stdio.h> #include "math.h"
int main(int arc,char *argv[]) { long int i; int x,y,z; for(i=1;i<100000;i++) { x = sqrt(i + 100); y = sqrt(i + 268); if (x * x == i + 100 && y*y == i+268) { printf("%ld\n",i); } } system("pause"); return 1; }
|
其中程序中的if语句设计到优先级的问题。即乘除优先级>>加减优先级>>关系优先级(>,>=,<,<=)>>逻辑优先级(&&,||,!)。
阅读(390) | 评论(0) | 转发(0) |