7-21 求特殊方程的正整数解-解释过程

#include<stdio.h>

int main()
{
	int N;
	scanf("%d",&N);
	int X,Y,flag=0;
	for(X=1; X<=100; X++)
	{
		for(Y=X; Y<=100; Y++)

		{
			if(X*X+Y*Y==N)
			{

				printf("%d %d\n",X,Y);
				flag++;
			}
		}
	}

	if(flag==0)
	{
		printf("No Solution");
	}
	return 0;
}

本题中,有以下需要注意的点:

1.循环的边界值设定,这里给的是100,因为100*100=10000,而题目中说N的范围,可以根据这个做个简单的计算

2.按照x的顺序进行递增解的输出,可以让X做外层循环,这样X的变化就是从小到大了,同时注意题目规定的Y>=X,所以在循环中,我使Y的初值为X.

3,这里无解的情况,我设置一个变量,通过变量的值来判断,是否有解,flag==0表示它没有满足要求的解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值