簡體   English   中英

方程式z中的平方和程序C = x ^ 2 + y ^ 2

[英]Sum of Squares Program in C with equation z = x^2 + y^2

我正在嘗試編寫一個程序,該程序查找並寫出所有對正整數x和y,使得x ^ 2 + y ^ 2 = z。 我想提示用戶輸入值z。 x和y可以為零或全部為零。 例如,如果z為25,則x和y為:

0,5; 3,4; 4、3; 5、0。

如果找不到這樣的x和y,程序將寫出“未找到”。 該程序不會搜索所有可能的整數來查找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");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM