就是从1到n-的值进行遍历,n*n-i*i的值开根号,如果开根号的值与该值进行取整后的值相等(说白了就是没有小数部分的话)这个值就是个完全平方数。以下代码已测试,与题中结果一致
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
for(int i=950;i<=1000;i++)
{
for(int j=1;j<i;j++)
{
int d = i*i-j*j;
float f = sqrt(d*1.0);
if(f==(int)f)
{
printf("%d ",i);
break;
}
}
}
}
#include <string>
#include <stdio.h>
int main() {
bool flag = false;
for (int i = 950; i < 1000; i++) {
flag = false;
for (int j = 1; j < 1000; j++) {
if (flag) {
break;
}
for (int k = 1; k < 1000; k++) {
if ((j * j + k * k) == i * i) {
printf("%d\n", i);
//printf("%d*%d+%d*%d =%d*%d \n", j,j,k,k,i,i);
flag = true;
break;
}
}
}
}
}
这是去重过后的。
#include <stdio.h>
int main() {
bool flag = false;
for (int i = 950; i < 1000; i++) {
for (int j = 1; j < 1000; j++) {
for (int k = 1; k < 1000; k++) {
if ((j * j + k * k) == i * i) {
printf("%d*%d+%d*%d =%d*%d \n", j,j,k,k,i,i);
}
}
}
}
}
这是去重前的。
暴力搜索就行了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m