在問題 c 中輸入乙個從 3 到 7 的正整數 n,並輸出所有 n 個數字的水仙花數量

發布 文化 2024-02-27
3個回答
  1. 匿名使用者2024-01-26

    這個問題有兩個關鍵點:一是如何確定水仙花的數量。

    第二個是如何設定n位數字的範圍。

    1. 水仙花的數量是指 n 位正整數。

    n>=3),如果數字的冪之和與數字每個位的 n 次冪之和等於自身(例如,1 3 + 5 3 + 3 3 = 153),則該數字稱為水仙。因此,要判斷乙個數字是否是水仙花數字,關鍵是要得到每個位元上的數字,然後累加它們的n次方和,然後做出判斷。

    每個位上的數字可以由餘數運算子獲得。

    和分裂。 “完成。 為了方便重複使用,水仙花數判斷可以寫成乙個單獨的功能(**附上)。

    2.設定n位數字的範圍可以完成10到n次方,例如,要檢測所有4位數字,可以設定乙個迴圈,從10的3次方到小於10的4次方開始,要檢測所有n位數字,可以使用for(i=(int)pow(10,n-1);i<(int)pow(10,n);i++) 迴圈。基於以上思路,**如下:

    過程**] 包括控制台操作標頭檔案。

    包括數學函式。

    標頭檔案。 bool sx(int a) 水仙花數判斷函式。

    int t=a,s=0,中間變數。

    n=1;a有幾個數字(最少 1 位數字)。

    while(t=t/10) n++;在中間變數 t 的幫助下,確定 a 有多少位數字。

    if(n<3) return false;如果小於 3 位,則返回 false。

    for(t=a;t;t=t 10) 到迴圈累積的位數的 n 次方。

    s+=(int)round(pow(t%10,n));

    return (s==a);} 關閉函式並返回比較結果。

    int main() main 函式。

    int i,n,a,b;迴圈變數和 n 位數字。

    do{printf("請輸入乙個介於 3 到 7 之間的正整數:");輸入提示。

    scanf("%d",&n);從鍵盤輸入 n

    while(n<3||n>7);如果 n 未在 3-7 之間重新輸入。

    a=(int)pow(10,n-1);設定 n 位數字的起點。

    b=(int)pow(10,n);設定 n 位數字的終點。

    printf("所有 %d 位的水仙花數量均為:",n);輸出提示。

    for(i=a;i

  2. 匿名使用者2024-01-25

    同學,你剛學過C語言,建議在做題之前先學一點基礎。

  3. 匿名使用者2024-01-24

    /*low = 1

    high = 9999

    1是水仙花的數量。

    1 的數字之和等於自身。

    2 的數字之和等於自身。

    3 的數字之和等於自身。

    4 的數字之和等於自身。

    5 的數字之和等於自身。

    6 的數字之和等於自身。

    7 的數字之和等於自身。

    8 的數字之和等於自身。

    9 的數字之和等於自身。

    153是水仙花的數量。

    370是水仙花的數量。

    371是水仙花的數量。

    407是水仙花的數量。

    請按任意鍵繼續。 .

    #include

    #define n 100

    int sxhs(int number, int *is)*is = (sum == number);

    return (cube == number);

    int main()

    return 0;}

相關回答
10個回答2024-02-27

思路:要求乙個正整數n的位數,可以先定義乙個變數num,並初始化為0,將整數n依次除以10,直到為0,每除以10,變數num的個數就會加1,最後乙個num的值就是整數n的位數。 >>>More

12個回答2024-02-27

要學習 C 語言字串,請輸入指定的字串並計算該字串的位數。

18個回答2024-02-27

乙個簡單的方法是使用 while 迴圈,除以 2 並取餘數,將餘數儲存在陣列中,最後以相反的順序輸出。

9個回答2024-02-27

#include

int main(void){ >>>More