Pomoc spr CPP

M1
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:3
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

Kopiuj
AM
  • Rejestracja:około 12 lat
  • Ostatnio:11 dni
  • Postów:196
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)

edytowany 1x, ostatnio: amd
enedil
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 7 godzin
  • Postów:1027
1
Kopiuj
int y = x % 9;
std::cout << (y == 0) ? 9 : y;
edytowany 1x, ostatnio: enedil
M1
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:3
0

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

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:29 minut
  • Postów:4935
2

Możesz użyć rekurencji, pseudokod:

Kopiuj
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.


edytowany 1x, ostatnio: lion137
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Poznań
  • Postów:8802
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 ;)


edytowany 1x, ostatnio: cerrato
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:minuta
  • Lokalizacja:Szczecin
2

Do kiedy masz czas?


M1
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:3
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.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:6 dni
7
cerrato napisał(a):

Gotowców nie będzie, sorry ;)

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

Kopiuj
#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;
}

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
stryku
Ciekawe :D Szkoda tylko, że UB (albo ill formed, nie pamiętam dokładnie)
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:minuta
  • Lokalizacja:Szczecin
7

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

Kopiuj
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


Zobacz pozostałe 2 komentarze
kq
Nah, one-liner w ruby: def digit_sum n, n.to_s.each_char.map(&:to_i).sum, end i puts [*0..10000].map{ digit_sum _1 }.each_slice(40).map{ _1.join(",")}.join(",\n") :​P
enedil
Ale to nie działa tak jak powinno :p
_13th_Dragon
'" ....powtarzamy aż do momentu otrzymania liczby jednocyfrowej ... ''. 987 => 6
kq
a, to w main trzeba będzie poprawić, to już niech OP zrobi
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:6 dni
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Spearhead
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 7 godzin
  • Postów:1002
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.

Kopiuj
#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;
}
Zobacz pozostałe 17 komentarzy
_13th_Dragon
@Spearhead, jak @kq - chodziło mi o to żeby stablicować, ale jednak nie udaje mi się zrobić tak aby liczył poprawnie.
kq
ale to w sumie minimalna zmiana, zamiast return num.at(n) zrobić return num.at(n) > 9 ? sum_digits(num.at(n)) : num.at(n) i fajrant ;​)
_13th_Dragon
wtedy nie trzeba tablicować :D
Spearhead
To mów od początku, że chcesz tablicować, bo w treści zadana jest tylko mowa o "zadanej liczbie". Jednej.
Szalony Programista
Szalony Programista
Lookup table w pewnych przypadkach jest strasznie dobre, kiedyś implementowałem łamanie crc32 i brute force to kupę czasu zajmowało, a mając lookup table + wyliczenie wzoru, można było natychmiast znaleźć kolizję.
Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 10 godzin
  • Postów:1605
3

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

Kopiuj
#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;
}
edytowany 1x, ostatnio: Althorion
Zobacz pozostałe 13 komentarzy
stryku
Górnego zakresu inta w czasie kompilacji, za pomocą takiej tablicy nie ogarniesz
_13th_Dragon
Jak podam górny zakres jakiś sensowny np: 65000 to czemu nie?
stryku
Wspomniałeś o int, potem o górnym zakresie. Założyłem, że chodzi o górny zakres inta :)
_13th_Dragon
Odnosiłem się do twego komentarzu <0, 1233> czyli dolny oraz górny zakres. :)
stryku
Wszystko jasne

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.