HDU1197特殊的四位數(題解)

2021-10-03 05:04:05 字數 2069 閱讀 5208

問題描述

查詢並列出所有以十進位制表示法表示的四位數字,這些四位數字具有以下特性:當以十六進製制(以16為基數)表示時,其四位數之和等於其數字總和;而以十二進位制表示時,其四位數也等於其數字的總和(以12為基數的符號。

例如,數字2991的(十進位制)數字之和為2 + 9 + 9 + 1 =21。由於2991 = 1 * 1728 + 8 * 144 + 9 * 12 + 3,其十二進位制表示為1893(12),這些數字也總計為21。但是在16進製制2991中是baf16,而11 + 10 + 15 = 36,因此程式應拒絕2991。

但是,下乙個數字(2992)在所有三個表示形式中的數字總和為22(包括bb016),因此2992應該在列出的輸出上。(我們不希望使用少於四位數的十進位制數字(不包括前導零),因此2992是第乙個正確答案。)

輸入值

沒有針對此問題的輸入。

輸出量

您的輸出將為2992,並且所有滿足要求的大四位數(嚴格按公升序排列)均在單獨的行上,沒有前導或尾隨空格,以換行符結尾。輸出中不得有空行。輸出的前幾行如下所示。

樣本輸入

沒有針對此問題的輸入。

樣本輸出

2992

2993

2994

2995

2996

2997

2998

2999

解題思路

題目大意:輸出所有十進位制、十二進位制、十六進製制各位數字加起來相等的四位數。

思路:for迴圈,求出十進位制、十二進位制、十六進製制各位數字加起來的結果,判斷是否相等,相等輸出。

ac**:

#include

intmain()

,b[3];

b[0]

=i; b[1]

=i; b[2]

=i;while

(b[0])

while

(b[1])

while

(b[2])

if(a[0]

==a[1]

&&a[1]

==a[2]

)printf

("%d\n"

,i);

}return0;

}

測試用例:

2992

2993

2994

2995

2996

2997

2998

2999

4470

4471

4472

4473

4474

4475

4970

4971

4972

4973

4974

4975

5460

5461

5462

5463

5464

5465

5466

5467

5468

5469

5960

5961

5962

5963

6456

6457

6458

6459

7440

7441

7442

7443

7444

7445

7446

7447

7448

7449

7940

7941

7942

7943

8436

8437

8438

8439

9424

9425

9426

9427

9428

9429

9924

9925

9926

9927

9928

9929

34 特殊四位數

34 特殊四位數 問題描述 數學一直是明明很喜歡的一門學科,不但上課認真聽講,而且還自己鑽研。有一次,老師在課上講了一種特殊的四位整數,這種整數有兩個特性 第一,它是某乙個自然數的平方 第二,它的千位數字與十位數字之和等於百位數字與個位數字之積。然後老師就舉了乙個例子 1156,1156是34的平方...

46 特殊四位數

問題描述 數學一直是明明很喜歡的一門學科,不但上課認真聽講,而且還自己鑽研。有一次,老師在課上講了一種特殊的四位整數,這種整數有兩個特性 第一,它是某乙個自然數的平方 第二,它的千位數字與十位數字之和等於百位數字與個位數字之積。然後老師就舉了乙個例子 1156,1156是34的平方,且1156的千位...

高階34 特殊四位數

34 特殊四位數 問題描述 數學一直是明明很喜歡的一門學科,不但上課認真聽講,而且還自己鑽研。有一次,老師在課上講了一種特殊的四位整數,這種整數有兩個特性 第一,它是某乙個自然數的平方 第二,它的千位數字與十位數字之和等於百位數字與個位數字之積。然後老師就舉了乙個例子 1156,1156是34的平方...