要求对任意给定的正整数N,求方程 X 2 + Y 2 = N X^2+Y^2=N X2+Y2=N 的全部正整数解。
输入在一行中给出正整数 N ( ≤ 10000 ) N(≤10000) N(≤10000)。
输出方程 X 2 + Y 2 = N X^2+Y^2=N X2+Y2=N 的全部正整数解,其中 X ≤ Y X≤Y X≤Y。每组解占 1 1 1 行,两数字间以 1 1 1 空格分隔,按 X X X 的递增顺序输出。如果没有解,则输出 N o S o l u t i o n No Solution NoSolution。
10 28
20 22
11
No Solution
先输入一个数 N N N,再创建一个标志是否有符合的标识变量并初始化为 0 0 0,然后利用两层 f o r for for 循环,先判断两个数字的平方的和是否等于 N N N,然后再判断 X ≤ Y X≤Y X≤Y 是否成立,如果成立就直接输出,且标识变量自增;最后 f o r for for 循环完毕,判断标识变量是否为 0 0 0,如果为 0 0 0 说明没有满足条件的两个数字,输出 " N o S o l u t i o n " "No Solution" "NoSolution" 即可。
#include<iostream>
using namespace std;
int main(void)
{
int x, y, N, flag = 1;
cout << "请输入一正个整数:"; // 提交时注释此行
cin >> N;
for (x = 1; x <= 100; x++)
{
for (y = 1; y <= 100; y++)
if (x*x + y * y == N)
if (x < y || x == y)
{
flag = 0;
cout << x << " " << y << endl;
}
}
if (flag)
cout << "No Solution" << endl;
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务