1

Тема: Цикли

Потрібно розв'язати задачу за допомогою циклу.

Довгожитель (вік не менше 100 років) одного разу підрахував, що
якщо до суми квадратів цифр його віку додати дату (число) дня
його народження, то якраз отримає свій вік. Скільки років
довгожителю?

2

Re: Цикли

В чому саме проблема? Пункт 3.5 правил читали? Цю тему переглядали?

3

Re: Цикли

А вже щось є готове? Чи то просто Зробіть завдання, бо мені ліньки навіть вникати в тему, а ви тут всі й так нічим корисним не зайняті?

4

Re: Цикли

Тут усе погано...

5

Re: Цикли

#include <iostream>
#include <Windows.h>

using namespace std;

int main() {
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  int data = 27;
  int age = 1;
  int a, b, c;
  while (age > 0) {
    a = age / 100;
    b = (age % 100) / 10;
    c = age % 10;
    if (age == pow(a, 2) + pow(b, 2) + pow(c, 2) + data)
      cout << "Age is " << age << endl;
  }
  return 0;
}

6

Re: Цикли

age же за умовами не менше 100 років?

Подякували: koala1

7

Re: Цикли

По друге, цикл у вас вічний? де умова виходу з циклу?

Подякували: koala1

8 Востаннє редагувалося koala (26.10.2020 17:20:30)

Re: Цикли

Вам треба не while, а for. Наприклад

for(age=100;age<200;++age)

(ми ж не думаємо, що йому може бути більше за 200 років?)
А чому лише 27-е число?

9

Re: Цикли

тут взагалі цикли не потрібні

Подякували: koala1

10

Re: Цикли

Бо я розв'язав, і мені вийшло ,що йому 109 років і число народження 27.Якщо зразу не ввести 27, то нічого не ходить

Подякували: koala, leofun012

11

Re: Цикли

Неефективний метод, але для розуміння циклів піде: додайте ще один цикл - по днях.

for(age=100;age<200;++age)
{
    for(day=1;day<=31;++day)
    {
        //тут перевірка
    }
}

12

Re: Цикли

Ефективніше - перевіряти, чи буде age-a*a-b*b-c*c в межах від 1 до 31.

Подякували: leofun011

13

Re: Цикли

Дякую за поради.

14

Re: Цикли

kryvyy05 написав:

Дякую за поради.

Викладайте робочий код.

Подякували: koala1

15

Re: Цикли

#include <iostream>
#include <Windows.h>

using namespace std;

int main() {
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  int day;
  int age;
  int a, b, c;
  for (age = 100; age < 200; ++age) {
    for (day = 1; day <= 31; ++day) {
      a = age / 100;
      b = (age % 100) / 10;
      c = age % 10;
      if (age == pow(a, 2) + pow(b, 2) + pow(c, 2) + day)
        cout << "Age is " << age << endl;
    }
  }
  return 0;
}
Подякували: Chemist-i, Arete, koala, leofun014

16

Re: Цикли

Просто лишу це тут

х - вік, у - день місяця

x=109, y=27 
x=9909, y=27 
x=10010, y=9 
x=10011, y=9 
x=10012, y=7 
x=10013, y=3 
x=10020, y=16 
x=10021, y=16 
x=10022, y=14 
x=10023, y=10 
x=10024, y=4 
x=10030, y=21 
x=10031, y=21 
x=10032, y=19 
x=10033, y=15 
x=10034, y=9 
x=10035, y=1 
x=10040, y=24 
x=10041, y=24 
x=10042, y=22 
x=10043, y=18 
x=10044, y=12 
x=10045, y=4 
x=10050, y=25 
x=10051, y=25 
x=10052, y=23 
x=10053, y=19 
x=10054, y=13 
x=10055, y=5 
x=10060, y=24 
x=10061, y=24 
x=10062, y=22 
x=10063, y=18 
x=10064, y=12 
x=10065, y=4 
x=10070, y=21 
x=10071, y=21 
x=10072, y=19 
x=10073, y=15 
x=10074, y=9 
x=10075, y=1 
x=10080, y=16 
x=10081, y=16 
x=10082, y=14 
x=10083, y=10 
x=10084, y=4 
x=10090, y=9 
x=10091, y=9 
x=10092, y=7 
x=10093, y=3 
Подякували: Arete1

17

Re: Цикли

Пане Chemist-i, а яким чином у вас 3*81+27 дає більше за 9000?

18

Re: Цикли

koala написав:

Пане Chemist-i, а яким чином у вас 3*81+27 дає більше за 9000?

Сором моїм сидинам :(
мій кід рахує лише три розряди, а все що більше вун рахує вже невірно..