1

Тема: Допомога з завданням

Підрахувати кількість цифр цілого десяткового числа.
Якщо зустрічається "99", то наступне за ними число поділити на 10 та результат вивести на екран, якщо наступного нема, піднести у квадрат попереднє і вивести на екран.

Тільки почав навчатися програмуванню і не розумію як це зробити
Роблю в cs50 sandbox

2 Востаннє редагувалося koala (26.10.2022 11:59:13)

Re: Допомога з завданням

Algor написав:

Тільки почав навчатися програмуванню і не розумію як це зробити

То почитайте підручник. Інакше й не зрозумієте.

3

Re: Допомога з завданням

Algor написав:

Роблю в cs50 sandbox

Ви cs50 вже пройшли?

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

4

Re: Допомога з завданням

Tarpan87 написав:
Algor написав:

Роблю в cs50 sandbox

Ви cs50 вже пройшли?

Ні, тільки другий тиждень на Прометеусі

5

Re: Допомога з завданням

Може так?

#include <iostream>
#include <math.h>
#include <vector>
using namespace std;

int main()
{
   int numeric, amount_digits = 0, pos = -1;

   cin >> numeric;
     
   int n = numeric;
   vector<int> digits;
   while(n > 0)
   {
      digits.push_back(n % 10);
     /* if(n % 10 == 9 && (n % 100 / 10) == 9)
         pos = amount_digits;*/
      n = n / 10;
      amount_digits++;
   }
   reverse(digits.begin(), digits.end());
   cout << "amount of digits = " << amount_digits << endl;
   for(auto element : digits)
      cout << element << " ";

   n = numeric;
   for(int i = 0; i < amount_digits - 1; i++)
   {
      if(digits[i] == 9 && digits[i+1] == 9)
      {
         if(i + 2 == amount_digits)
            n =( n / 100 ) * ( n / 100 );
         else
            n = (n % (int)pow(10, amount_digits - (i + 2))) / 10;
      }

   }
   cout << endl << n;
}

6

Re: Допомога з завданням

думаю можна простіше. і як має програма себе вести якщо три або більше 9 підряд?

7

Re: Допомога з завданням

Olex_V написав:

як має програма себе вести якщо три або більше 9 підряд?

Ну якщо дослівно, то лише перші дві дев'ятки поспіль це "99". Далі з дев'ятки починається "наступне за ним число". Але формулювання дуже криве.