Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

RGB7342 - Цифр болтол нь нэмье

Эерэг бүхэл тоо n-ийн хувьд f(n) гэдэг функц нь n тооны цифрүүдийн нийлбэрийг олдог. n, f(n), f(f(n)), f(f(f(n))), … гэсэн дараалал дахь тоонууд сүүлдээ нэг цифр болж тэр цифр нь цаашдаа байнга давтагдана гэдэг нь харагдаж байна. Тэр цифрийг k гэе. Таны даалгавар бол k цифрийг олох юм.

Жишээ нь n=1234567892 байх үед k-г олъё.

f(n) = 1+2+3+4+5+6+7+8+9+2 = 47

f( f(n) ) = 4+7 = 11

f( f( f(n) ) ) = 1+1 = 2

Ингээд k=1234567892 тооны хувьд f(k)=2.

Input

Оролт нь олон тестээс бүрдэх ба тест бүр эерэг бүхэл n (n<2,000,000,000) тоог агуулсан ганц бүхэл тооноос бүрдэнэ. Оролт n=0 үед дуусна, энэ сүүлийн тестэнд бодолт хийхгүй.

Output

Тест бүрд k цифрийг агуулсан нэг мөр гаргана.

Example

Input:

2

11

47

1234567892

0

Output: 

2

 2

2

2


Нэмсэн:Bataa
Огноо:2013-06-08
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:ADA95 ASM32 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE

hide comments
2024-12-16 08:38:09
#include <iostream>
using namespace std;

// Цифрүүдийн нийлбэрийг тооцох функц
int digit_root(int n) {
while (n >= 10) { // Хэрэв нэг цифр биш бол
int sum = 0;
while (n > 0) {
sum += n % 10; // Тооны сүүлийн цифрийг нэмнэ
n /= 10; // Тоог нэг оронтой болгоно
}
n = sum; // Шинэ тоо нь цифрүүдийн нийлбэр байна
}
return n; // Эцсийн нэг цифрийг буцаана
}

int main() {
int n;

while (true) {
cin >> n; // Орлогыг унших
if (n == 0) break; // Орлого 0 бол дуусна

// k цифрийг олж гарахад
cout << digit_root(n) << endl;
}

return 0;
}
2024-01-15 10:01:00
//uilseeges sanaa aw**
#include <bits/stdc++.h>
using namespace std;
long long tsifir(long long n
long long sum =
while (n >
sum +=
n /=
}
return sum
}

long long findk(long long
long long k = tsifir(n);
while (k >=
k = tsifir(k
}
return
}

int main() {
long long
while (
cin >> n
if (n == 0
break;
}
long long k = findk(
cout << k << endl
}
return 0
}

Last edit: 2024-01-15 10:01:59
2023-03-03 05:17:36
shaaaaaldaaa badmaaa
2020-01-07 11:36:27
amraa uhaantan hangai king

Last edit: 2020-01-07 11:36:57
2019-08-11 12:02:47
amraa

Last edit: 2019-08-11 12:03:54
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.