求950到1000,能够作为直角斜边的数。

 

就是从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

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 文章:1000的阶乘 中也许有你想要的答案,请看下吧

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^