C ++ x не увеличивает цикл

У меня есть задание от моего учителя, например:
х ^ 2 + у ^ 3 = г

х заполнено только нечетным
у заполнены только четными

#include <stdio.h>
#include <string>
#include <iostream>

using namespace std;
int x,y,z;

int main(){
for (x=1;x<=20;x++){
if ((x%2==1)&&(y%2==0)){
for (y=1;y<=20;y++){
if ((x%2==1)&&(y%2==0)){
z = (x*x) + (y*y*y);
cout << "x^2 + y^3 =" <<z <<"\n";
}
}
}
}
}

Я пытаюсь сделать свой собственный код, как указано выше, но единственный цикл — это Y, x стоит на месте с 1.

Я хочу, чтобы х тоже было зацикливаться. Что я должен делать?

Мое ожидание выхода было бы как:

1^2 + 2^3 = 9
3^2 + 4^3 = 71
5^2 + 6^3 = 241
7^2 + 8^3 = 561
9^2 + 10^3 = 1081
11^2 + 12^3 = 1849
13^2 + 14^3 = 2913
15^2 + 16^3 = 4321
17^2 + 18^3 = 6121
19^2 + 20^3 = 8361

PS. Я извиняюсь за мой плохой английский: D

-1

Решение

Это то, что у вас есть:

int main(){
for (x=1;x<=20;x++){
if ((x%2==1)&&(y%2==0)){
for (y=1;y<=20;y++){
if ((x%2==1)&&(y%2==0)){
z = (x*x) + (y*y*y);
cout << "x^2 + y^3 =" <<z <<"\n";
}
}
}
}
}

Проблема первая if ((x%2==1)&&(y%2==0)){ проверять.

После завершения внутреннего цикла for значение y будет 21. Следовательно, вышеупомянутые условные оценки false независимо от того, что значение x является. Как следствие, внутренний цикл for выполняется только один раз. Вы должны сначала удалить это if заявление.

int main(){
for (x=1;x<=20;x++){
for (y=1;y<=20;y++){
if ((x%2==1)&&(y%2==0)){
z = (x*x) + (y*y*y);
cout << "x^2 + y^3 =" <<z <<"\n";
}
}
}
}

Обновление в ответ на комментарий ОП

Похоже, вам нужен гораздо более простой код.

int main(){

// Start with x = 1 and increment x by 2. It will be always be odd
for ( x = 1; x <= 20; x += 2 ){

// No need to create another loop. y is simply x+1
// Since x is odd, y will be even.
y = x+1;

// Compute the result and print it.
z = (x*x) + (y*y*y);
cout << "x^2 + y^3 =" << z <<"\n";
}
}
1

Другие решения

Потому что y = 21 после внутреннего цикла y. Так что цикл x не будет выполняться после. Надеюсь, что это полезно.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector