C语言输出0到999之间各位数之和为15的数及其个数
编译环境VS2017
将问题转化为求各位数字再判断其和的问题。
不管正整数是几位,个位数字为i % 10。
如果位数增大,则可将十位以上位转化为个位的方法。例如25,先(int)325/10=32,再32%10=2即计算出了十位数字。
最高位数字算法,三位数/100,四位数/1000…,以此类推。
#include<stdio.h>
#include<stdlib.h>
int fun(){
int i, x, y, z, n = 0;
for (i = 0; i < 1000; i++){
x = i % 10;
y = (i / 10) % 10;
z = (i / 100);
if (x + y + z == 15){
n++;
printf("%d\n", i);
}
}
return n;
}
void main(){
printf("0到999之间各位数之和为15的数有%d个\n", fun());
system("pause");
}