3.4趣味整数之黑洞数

来源:互联网 发布:淘宝达人在哪里找 编辑:程序博客网 时间:2024/06/07 15:23

1.问题描述
这里写图片描述
2,问题分析
这里写图片描述
3问题描述
这里写图片描述
4,完整程序

int numberOfDigit(long num){

int count=0;while (num!=0) {    num/=10;    count++;}return count;

}
void swap(int *p,int *q){
int tmp=*p;
*p=*q;
*q=tmp;

}
int maxOf3(int num){
//个位
int a=num%10;
//十位
int b=num/10%10;
//百位
int c=num/100;

//比较三个数if (a<b) {    swap(&a, &b);}if (a<c) {    swap(&a,&c);}if (b<c) {    swap(&b, &c);}return a*100+10*b+c;

}
int minOf3(int num){
//个位
int a=num%10;
//十位
int b=num/10%10;
//百位
int c=num/100;

//比较三个数if (a<b) {    swap(&a, &b);}if (a<c) {    swap(&a,&c);}if (b<c) {    swap(&b, &c);}return c*100+10*b+a;

}
int main(int argc,char*argv[]){

int i;printf("输入一个三位数:\n");scanf("%d",&i);if (numberOfDigit(i)!=3) {    printf("输入不对,重新输入三位数:\n");    scanf("%d",&i);}int j=maxOf3(i)-minOf3(i);int h;for (int k=0;; k++) {    h=j;    j=maxOf3(h)-minOf3(h);    if (j==h) {        printf("黑洞数:%d\n",j);//459或者0        break;    }}return 0;

}

0 0
原创粉丝点击