用c语言进行编程:本题要求对任意给定的正整数N,求方程X 2 +Y 2 =N的全部正整数解。 输入格式: 输入在一行中给出正整数N(≤10000)。 输出格式: 输出方程X 2 +Y 2 =N的全部正整数解,其中X≤Y。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution。
时间: 2023-06-11 12:06:30 浏览: 86
c代码-C语言三个数从小到大排序/输出: 任意输入 3 个整数,编程实现对这 3 个整数由小到大进行排序。 冒泡排序的动画 https://haokan.baidu.com/v?vid=8080732080990475789&pd=bjh&fr=bjhauthor&type=video
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j, flag = 0;
scanf("%d", &n);
for(i = 0; i <= sqrt(n); i++) {
for(j = i; j <= sqrt(n); j++) {
if(i * i + j * j == n) {
printf("%d %d\n", i, j);
flag = 1;
}
}
}
if(flag == 0) {
printf("No Solution\n");
}
return 0;
}
```
思路:枚举x和y的值,如果x的平方加上y的平方等于n,则输出这组解。注意,要从0开始枚举x,因为可能有0的平方等于n的情况。同时,为了避免重复,内层循环从外层循环的值开始枚举。如果找不到解,则输出"No Solution"。
阅读全文