数位和

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。