Pomoc spr CPP

0

Witam. Pomoże mi ktoś z tym zadaniem asap? Trudne jest i nie rozumiem, help. ```Napisz program sumujący cyfry zadanej liczby. Proces sumowania
powtarzamy aż do momentu otrzymania liczby jednocyfrowej

4

Dostajesz na wejściu liczbę sumujesz jej cyfry powtarzasz sumowanie na nowej liczbie do momentu aż wynik <10.

przykład:
Wejście: 987
Wynik: 6 bo (9+8+7 = 24 > 10 -> 2+4 = 6 < 10)

1
int y = x % 9;
std::cout << (y == 0) ? 9 : y;
0

Czy mógłby mi ktoś ten program napisać? Nie rozumiem nic z powyższych przekazów..

2

Możesz użyć rekurencji, pseudokod:

function single_sum(n):
    if n < 10:
        return n
    else:
        return single_sum(digit_sum(n))

Funkcja digit_sum, (sumująca cyfry w liczbie) jest trywialna.

5

Czy mógłby mi ktoś ten program napisać?

Ale masz świadomość, że ten wątek jest niezgodny z regulaminem forum? Niedopuszczalne jest proszenie o pisanie programów do szkoły czy na zaliczenie. Jedynie przez szacunek dla kolegów, którzy tutaj udzielają Ci pomocy - nie przeniosłem go do kosza.

W każdym razie - możemy Ci pomóc w zrozumieniu tematu, ale nikt nie będzie podawać gotowców. A jak się jakiś znowu pojawi, to niestety - całość leci do śmietnika. Było ostrzeżenie, teraz możesz prosić o wytłumaczenie. Gotowców nie będzie, sorry ;)

2

Do kiedy masz czas?

1
cerrato napisał(a):

Czy mógłby mi ktoś ten program napisać?

Ale masz świadomość, że ten wątek jest niezgodny z regulaminem forum? Niedopuszczalne jest proszenie o pisanie programów do szkoły czy na zaliczenie. Jedynie przez szacunek dla kolegów, którzy tutaj udzielają Ci pomocy - nie przeniosłem go do kosza.

W każdym razie - możemy Ci pomóc w zrozumieniu tematu, ale nikt nie będzie podawać gotowców. A jak się jakiś znowu pojawi, to niestety - całość leci do śmietnika. Było ostrzeżenie, teraz możesz prosić o wytłumaczenie. Gotowców nie będzie, sorry ;)

Problem rozwiązany, kolega ma rację. Przepraszam wszystkich, którzy się tutaj udzielili, powinienem najpierw zrozumieć podstawę, a nie na gotowca liczyć bez jakiegokolwiek wysiłku.

7
cerrato napisał(a):

Gotowców nie będzie, sorry ;)

Przecież nie jesteśmy aż tak źli, czemu nie dać biednemu studentowi gotowca?

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main(int x,char *p[])
{
	if(p) cout<<main(987,nullptr)<<endl;
	else
	{
		int X=0;
		for(auto d:((ostringstream&)(ostringstream()<<x)).str()) X+=(d-'0');
		return (X-x)?main(X,nullptr):X;
	}
	return 0;
}
7

A szkoda, już napisałem program dla liczb z zakresu 0-10000:

int digit_sum(int);

int main()
{
    DBG(digit_sum(666));
    DBG(digit_sum(999));
    DBG(digit_sum(1000));
}

int digit_sum(int n)
{
    static std::vector<int> sums{0,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,10,2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11,12,
        4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,1,2,3,4,5,6,7,8,9,10,2,3,4,5,6,7,8,9,10,11,
        3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,
        5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        1,2,3,4,5,6,7,8,9,10,2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,
        5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11,12,
        4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,
        5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        3,4,5,6,7,8,9,10,11,12,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        4,5,6,7,8,9,10,11,12,13,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,
        5,6,7,8,9,10,11,12,13,14,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,
        6,7,8,9,10,11,12,13,14,15,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,
        7,8,9,10,11,12,13,14,15,16,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,
        23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,25,26,27,28,29,30,31,32,33,34,
        8,9,10,11,12,13,14,15,16,17,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,
        24,25,26,27,28,29,30,31,32,33,25,26,27,28,29,30,31,32,33,34,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,
        23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,25,26,27,28,29,30,31,32,33,34,26,27,28,29,30,31,32,33,34,35,
        9,10,11,12,13,14,15,16,17,18,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,10,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,20,
        12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        11,12,13,14,15,16,17,18,19,20,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,21,22,
        14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        13,14,15,16,17,18,19,20,21,22,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,14,15,16,17,18,19,20,21,22,23,15,16,17,18,19,20,21,22,23,24,
        16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,
        15,16,17,18,19,20,21,22,23,24,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,
        19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,
        23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,16,17,18,19,20,21,22,23,24,25,17,18,19,20,21,22,23,24,25,26,
        18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,
        22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,25,26,27,28,29,30,31,32,33,34,
        17,18,19,20,21,22,23,24,25,26,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,20,21,22,23,24,25,26,27,28,29,
        21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,24,25,26,27,28,29,30,31,32,33,
        25,26,27,28,29,30,31,32,33,34,26,27,28,29,30,31,32,33,34,35,18,19,20,21,22,23,24,25,26,27,19,20,21,22,23,24,25,26,27,28,
        20,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,30,22,23,24,25,26,27,28,29,30,31,23,24,25,26,27,28,29,30,31,32,
        24,25,26,27,28,29,30,31,32,33,25,26,27,28,29,30,31,32,33,34,26,27,28,29,30,31,32,33,34,35,27,28,29,30,31,32,33,34,35,36
    };

    return sums.at(n);
}

https://wandbox.org/permlink/BrxELxqfz0DggoFo

0

Tak się zastanawiam czy dało by się to zrealizować jako metaprogramowanie?
Czyli w czasie kompilacji, chociażby w C++.

6
_13th_Dragon napisał(a):

Tak się zastanawiam czy dało by się to zrealizować jako metaprogramowanie?

Czyli w czasie kompilacji, chociażby w C++.

Jak najbardziej.

#include <iostream>

template<unsigned n>
struct SumOfDigits {	
    static const unsigned value = n % 10 + SumOfDigits<n/10>::value;
};

template<>struct SumOfDigits<0> {
    static const unsigned value = 0;
};

template<unsigned n>
struct Calculate {
    static const unsigned value = Calculate<SumOfDigits<n>::value>::value;
};

template<>struct Calculate<0> {static const unsigned value = 0;};
template<>struct Calculate<1> {static const unsigned value = 1;};
template<>struct Calculate<2> {static const unsigned value = 2;};
template<>struct Calculate<3> {static const unsigned value = 3;};
template<>struct Calculate<4> {static const unsigned value = 4;};
template<>struct Calculate<5> {static const unsigned value = 5;};
template<>struct Calculate<6> {static const unsigned value = 6;};
template<>struct Calculate<7> {static const unsigned value = 7;};
template<>struct Calculate<8> {static const unsigned value = 8;};
template<>struct Calculate<9> {static const unsigned value = 9;};

int main() {
    int i = Calculate<987>::value;
    std::cout << i << std::endl;
}
3

A to też się da, chyba że znowu Cię źle zrozumiałem. Coś na modłę:

#include <array>
#include <iostream>

constexpr unsigned int SumOfDigits(unsigned int n) {
	if (n < 10) {
		return n;
	} else {
		return n%10 + SumOfDigits(n/10);
	}
}

constexpr auto TableOfSums = [] {
	constexpr auto TableSize = 1234;
	std::array<unsigned int, TableSize> table = {};

	for (unsigned int i = 0; i < TableSize; ++i) {
		table[i] = SumOfDigits(i);
	}

	return table;
}();

int main() {
	static_assert(TableOfSums[987] == 24);

	unsigned int x;
	std::cin >> x;
	std::cout << TableOfSums[x] << '\n';
  
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1