数位和
时间: 1ms 内存:128M
描述:
数位和:把十进制数字的每一位数字分解求和,比如123456的数位和 => 1+2+3+4+5+6=21
输入:
两个正整数n,m (1<=n<=100000,1<=m<=30)
输出:
一个整数,代表1到n 数位和能被m整除的数 的个数
示例输入:
12 3
示例输出:
4
提示:
参考答案(内存最优[1116]):
#include<stdio.h>
using namespace std;
int n,m,ans;
int sum(int x) {
int res=0;
while (x) {
res+=x%10;
x/=10;
}
return res;
}
int main() {
scanf("%d%d",&n,&m);
int ans=0;
for (int i=1;i<=n;i++)
if (sum(i)%m==0)
ans++;
printf("%d\n",ans);
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
using namespace std;
int n,m,ans;
int sum(int x) {
int res=0;
while (x) {
res+=x%10;
x/=10;
}
return res;
}
int main() {
scanf("%d%d",&n,&m);
int ans=0;
for (int i=1;i<=n;i++)
if (sum(i)%m==0)
ans++;
printf("%d\n",ans);
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。