求解答:求1到1888888之间的平衡数。所谓i(十进制数)是平衡数是满足下列要求的数,1到i之间的十进制数中出现1的个数总和与i相等。
求1到1888888之间的平衡数。所谓i(十进制数)是平衡数是满足下列要求的数,1到i之间的十进制数中出现1的个数总和与i相等。
#include <stdio.h>
#include <string.h>
int main()
{
int cnt = 0;
char buf[50];
for (int i = 1 ; i < 1888888; i++)
{
sprintf(buf, "%d", i);
for (int j = 0; j < strlen(buf); j++)
if (buf[j] == '1')
cnt++;
if (cnt == i)
printf("%d\n", i);
}
return 0;
}