Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Misaki có một số \(N\), cô ấy đố bạn tìm ra được \(FNUM\) của số đó. Một \(FNUM\) được xác định là tổng các chữ số của số đó, sau đó lại tính tổng các chữ số của số mới tạo được cho đến khi chỉ còn 1 chữ số duy nhất. Bạn hãy tìm ra số cuối cùng đó nhé!
Input
- Dòng đầu tiên và duy nhất chứa 1 số nguyên \(N\) \((1 \leq N \leq 10^{1000000})\)
Output
- In ra 1 số nguyên là \(FNUM\) của \(N\).
Example
Test 1
Input
29
Output
2
Note
Các số được tạo ra lần lượt là \(29 \rightarrow 11 \rightarrow 2\)
Bình luận
Thu hồi
include <bits/stdc++.h>
using namespace std;
string s;
int tong = 0;
int main()
{
cin >> s;
s += '0';
for (int i = 0;i < s.size();i++) tong += s[i] - '0';
cout << tong%9;
}
code cho ai can
sao làm code:
mà bị time limit nhỉ?
2 bài này giống nhau nè :v
https://lqdoj.edu.vn/problem/1920sodep
Bài này em có cách giải hơi ngu, nếu thấy sai mong các anh chỉ bảo.
Cách thứ nhất: Dùng đệ quy, cộng hết các chữ số lại, nếu tổng lớn hơn 9 thì chạy lại lần nữa
Code:
Cách thứ hai: Chỉ cần tính tổng hết cả dãy rồi sau đó lấy số dư của số đó chia cho 9, trường hợp chia hết xuất ra 9.
Code:
Updated Editorial
Spoiler Alert
Hint 1
Hint 2
Hint 3
Online Solving
: Ta có thể không cần nhận xâuReference AC code | \(O(\log_{10}n)\) time | \(O(1)\) auxiliary space | Online Solving, Math