如果x加上x的各个数字之和得到y,就说x是y的生成元。求最小生成元。
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
int n,i,count = 0,m,sum = 0,r,a = 0; //a为输出标记位
scanf("%d",&n);
m = n;
while(m)
{
m = m/10;
count++;
}
for(i = n-9*count;i<n;i++)
{
sum = 0; //记得将sum清零
r = i;
while(r)
{
sum = sum+(r%10);
r = r/10;
}
sum = sum+i;
if(sum == n)
{
printf("%d",i);
a= 1;
break;
}
}
if(!a) printf("0");
return 0 ;
}
#include <string.h>
int main(int argc, char *argv[]) {
int n,i,count = 0,m,sum = 0,r,a = 0; //a为输出标记位
scanf("%d",&n);
m = n;
while(m)
{
m = m/10;
count++;
}
for(i = n-9*count;i<n;i++)
{
sum = 0; //记得将sum清零
r = i;
while(r)
{
sum = sum+(r%10);
r = r/10;
}
sum = sum+i;
if(sum == n)
{
printf("%d",i);
a= 1;
break;
}
}
if(!a) printf("0");
return 0 ;
}