gpt4 book ai didi

c - C 中的平方和程序,方程 z = x^2 + y^2

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:13 26 4
gpt4 key购买 nike

我正在尝试编写一个程序来查找并写出所有正整数对 x 和y 这样 x^2 + y^2 = z。我想提示用户输入值 z。 x 和 y可以为零或都为零。例如,如果 z 为 25,则 x 和 y 为:

0, 5; 3, 4; 4, 3; 5, 0.

如果没有找到这样的 x 和 y,程序会写出“None Found”。该程序不搜索所有可能的整数来找到 x 和 y。对于给定的 z 值,它可以停止当 x^2 > z 时搜索 x。 (y 也一样。)我需要期望 z 为零直到一个名为 INT_MAX 的值。

这是我目前所拥有的:

#include<stdio.h>
#include<limits.h>

int main()
{
int x,y,z;

printf("Enter a value for Z: \n");
scanf("%d",&z);

z = x*x + y*y;


for(x = 0; x*x < z; ++x)
{
printf("%d",&x);
}

for(y = 0; y*y < z; ++y)
{
printf("%d",&y);
}

}

我的问题是,我正在尝试编写某种循环,将 x 和 y 都从零开始,然后递增它们以形成 x 和 y 的所有不同可能组合,以获得用户为 Z 输入的任何内容. 在这里,我将它们放在两个不同的 for 循环中。我不确定该怎么做,我们将不胜感激。

最佳答案

#include<stdio.h>
#include<limits.h>

int main()
{
int x, y, z, zx, found;

printf("Enter a value for Z: \n");
scanf("%d", &z);


found = 0;
for(x = 0; x*x <= z; ++x)
{
zx = z - x*x;
for(y = 0; y*y < zx; ++y);
if (zx == y*y)
{
found += 1;
printf("%d, %d;\t", x, y);
}
}

if (found == 0)
printf("No solutions have been found");
}

关于c - C 中的平方和程序,方程 z = x^2 + y^2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52583269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com