中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數字黑洞Kaprekar常數介紹

發布時間:2020-05-11 15:05:24 來源:億速云 閱讀:729 作者:Leah 欄目:編程語言

什么是數字黑洞?Kaprekar常數又是什么?這些問題可能是我們日常工作會見到的。通過這個問題,希望你能收獲更多。下面是揭開這些問題的詳細內容。

題目描述

給定任一個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然后用第1個數字減第2個數字,將得到
 一個新的數字。一直重復這樣做,我們很快會停在有“數字黑洞”之稱的6174,這個神奇的數字也叫Kaprekar常數。
 
 例如,我們從6767開始,將得到
 
 7766 - 6677 = 1089
 9810 - 0189 = 9621
 9621 - 1269 = 8352
 8532 - 2358 = 6174
 7641 - 1467 = 6174
 ... ...
 
 現給定任意4位正整數,請編寫程序演示到達黑洞的過程。


輸入描述:

輸入給出一個(0, 10000)區間內的正整數N。



輸出描述:

如果N的4位數字全相等,則在一行內輸出“N - N = 0000”;否則將計算的每一步在一行內輸出,直到6174作為差出現,輸出格式見樣例,每行中間沒有空行。注意每個數字按4位數格
 式輸出。


輸入例子:

6767


輸出例子:

7766 - 6677 = 1089
 9810 - 0189 = 9621
 9621 - 1269 = 8352
 8532 - 2358 = 6174

參考代碼:

#include<stdio.h>
#include<stdlib.h>
int str_to_int(const void *str)
{
    char *s=(char *)str;
    int i;
    for(i=0;i<4;i++){
        if(s[i]=='\0')
            s[i]='0';
    }
    return (s[0]-'0')*1000+(s[1]-'0')*100+(s[2]-'0')*10+(s[3]-'0');
}
void int_to_str(const int num,char *str)
{
    str[0]=num/1000+'0';
    str[1]=num/100%10+'0';
    str[2]=num/10%10+'0';
    str[3]=num%10+'0';
}
int comp_min(const void *a,const void *b)
{
    return *(char*)a-*(char*)b;
}
int comp_max(const void *a,const void *b)
{
    return -(*(char*)a-*(char*)b);
}
int main()
{
    char str[4]={'0','0','0','0'};
    int max=0,min=0,res_num=0;
    scanf("%s",str);
    res_num=str_to_int(str);
    qsort(str,4,sizeof(char),comp_min);
    min=str_to_int(str);
    qsort(str,4,sizeof(char),comp_max);
    max=str_to_int(str);
    do{
        if(max-min==0){
            printf("%04d - %04d = 0000\n",max,min);
            break;
        }else if(max<=0||max>=10000||min<=0||min>=10000)
            break;
        printf("%d - %04d = %d\n",max,min,max-min);
        res_num=max-min;
        int_to_str(max-min,str);
        qsort(str,4,sizeof(char),comp_min);
        min=str_to_int(str);
        qsort(str,4,sizeof(char),comp_max);
        max=str_to_int(str);
    }while(res_num!=max-min);
    return 0;
}

以上就是數字黑洞Kaprekar常數的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合作市| 旺苍县| 民县| 新宁县| 宜都市| 满城县| 吐鲁番市| 曲靖市| 金湖县| 桦甸市| 白朗县| 铁岭市| 大荔县| 阜城县| 商丘市| 陇南市| 英吉沙县| 桐城市| 九龙坡区| 太白县| 康马县| 湟中县| 额敏县| 吉木萨尔县| 榆树市| 通化县| 伊通| 宣汉县| 清流县| 邵阳县| 平果县| 乐平市| 高尔夫| 赤峰市| 武定县| 平度市| 昌黎县| 忻城县| 宁远县| 德江县| 乌兰县|