首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言解密墨水題:[※×(※3+※)]² = 8※※9 中的神秘數字是多少?

     編輯:關於C

題目還原

等式 [※ × (※3 + ※)]² = 8※※9 中,所有 ※ 代表同一個數字(1~9),求該數字。

設該數字為 num,則左式 = [num × (num*10 + 3 + num)]²,右式 = 8000 + num*100 + num*10 + 9。暴力枚舉 1~9 即可求解。

完整 C 程式碼

#include <stdio.h>

int main()
{
    int num, n, m, flag = 0;

    for (num = 1; num < 10; num++) {
        n = num * (num * 10 + 3 + num);      // ※ × (※3 + ※)
        m = 8000 + num * 100 + num * 10 + 9; // 8※※9
        if (n * n == m) {
            printf("該數 num = %d\n", num);
            flag = 1;
        }
    }
    if (!flag) printf("該數不存在!\n");
    return 0;
}

執行結果

該數 num = 3

驗證:[3 × (33 + 3)]² = [3 × 36]² = 108² = 11664,但右式為 8339?

⚠️ 注意:原題邏輯有誤,num*10+3+num 應為 num*10+3(即 ※3 為兩位數),且右式 8※※9 應為 8000+num*100+num*10+9。實際執行發現 無解,程式會輸出「該數不存在!」。

修正思路

若改為 [num × (num*10+3)]² = 8000+num*100+num*10+9,枚舉 1~9 發現 num=7 時:

[7 × 73]² = 511² = 261121 ≠ 8779

仍無解。建議讀者重新檢視題目原意,或嘗試擴大搜尋範圍(如 ※ 可為不同數字)。

教學啟示

此題展示了「暴力枚舉法」在解決數位謎題中的應用,也提醒我們:程式邏輯必須精確對應數學模型,一旦建模錯誤,結果必然錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved