题目描述
定义一个数字的根为它的十进制数字之和,例如 1234 的数根为 1+2+3+4。
给定一个整数 n,请判定 n 的数根能否整除 n。
输入格式
- 单个整数表示 n
输出格式
- 如果 n 的数根可以除尽 n,输出
Yes
,否则输出No
数据范围
- 30%的数据,1≤n<106
- 60%数据,1≤n<1018
- 100% 的数据,1≤n<10100,000
样例数据
输入:
1234
输出:
No
输入:
333
输出:
Yes
题解
本题关键点:模拟法,代码如下。
#include <iostream>
#include <string>
using namespace std;
int main() {string s;cin>>s;int m,k;m=0;k=0;for(int i=0;i<s.length();i++){m+=s[i]-'0';}for(int j=0;j<s.length();j++){k=k*10+s[j]-'0';k%=m;}if(k==0){cout<<"Yes";}else{cout<<"No";}return 0;
}