POJ-2196 Specialized Four-Digit Numbers-10,12,16進位制的各個位數相加彼此相等的數
Specialized Four-Digit Numbers
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 7636 | Accepted: 5559 |
Description
Find and list all four-digit numbers in decimal notation that have the property that the sum of its four digits equals the sum of its digits when represented in hexadecimal (base 16) notation and also equals the sum of its digits when represented in duodecimal
(base 12) notation.
For example, the number 2991 has the sum of (decimal) digits 2+9+9+1 = 21. Since 2991 = 1*1728 + 8*144 + 9*12 + 3, its duodecimal representation is 189312, and these digits also sum up to 21. But in hexadecimal 2991 is BAF16, and 11+10+15 = 36, so 2991 should be rejected by your program.
The next number (2992), however, has digits that sum to 22 in all three representations (including BB016), so 2992 should be on the listed output. (We don't want decimal numbers with fewer than four digits -- excluding leading zeroes -- so that 2992 is the first correct answer.)
For example, the number 2991 has the sum of (decimal) digits 2+9+9+1 = 21. Since 2991 = 1*1728 + 8*144 + 9*12 + 3, its duodecimal representation is 189312, and these digits also sum up to 21. But in hexadecimal 2991 is BAF16, and 11+10+15 = 36, so 2991 should be rejected by your program.
The next number (2992), however, has digits that sum to 22 in all three representations (including BB016), so 2992 should be on the listed output. (We don't want decimal numbers with fewer than four digits -- excluding leading zeroes -- so that 2992 is the first correct answer.)
Input
There is no input for this problem
Output
Your output is to be 2992 and all larger four-digit numbers that satisfy the requirements (in strictly increasing order), each on a separate line with no leading or trailing blanks, ending with a new-line character. There are to be no blank lines in the output.
The first few lines of the output are shown below.
Sample Input
There is no input for this problem
Sample Output
2992 2993 2994 2995 2996 2997 2998 2999 ...
Source
//輸出從2992-9999之前滿足10,12,16進位制的各個位數相加彼此相等的數
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
int cal(int n,int b)//引數分別表示要進行計算的數和進位制,這個函式用來計算各個位數之和
{
int ans=0,a;
a=n;
while(a>0)
{
ans+=(a%b);
a/=b;
}
return ans;
}
int main()
{
int i;
for(i=2992; i<=9999; ++i)
if(cal(i,10)==cal(i,12)&&cal(i,12)==cal(i,16)&&cal(i,10)==cal(i,16))
cout<<i<<endl;
return 0;
}
相關文章
- ZOJ Martian Addition (20進位制的兩個大數相加)
- 位運算--求一個 數二進位制中1的個數
- 二進位制中1的個數
- 二進位制字串相加字串
- 負數補碼(16進位制轉10進位制的負數)
- 十六進位制數轉十進位制
- 位運算(一):二進位制中1的個數
- 數的進位制轉換
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 求一個整數的二進位制中1的個數
- 產生一個32位的16進位制隨機數隨機
- 負數的二進位制數問題
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- 八進位制,十六進位制和浮點數
- 對十進位制數字的按位輸出,取反,並求其位數
- 在c語言中輸出8進位制數,16進位制數C語言
- 2^k進位制數
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 進位制均值-進位制轉換+最大公約數
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 【劍指offer】二進位制中1的個數
- 1417 二進位制數的大小
- 其他進位制的數字 轉換
- poj3252 數位dp(所有比n小的二進位制位0的個數不少於1的個數)記憶化搜尋
- JavaScript 二進位制數字轉換為十進位制JavaScript
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- 【c語言】統計一個數二進位制中的1的個數C語言
- 求一個數的二進位制數中所含1的個數的程式碼實現
- 03:八進位制小數
- printf()將10進位制數安照輸出16進位制,8進位制輸出
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- 【刷演算法】二進位制中1的個數演算法
- 題目1513:二進位制中1的個數
- 求二進位制數中1的個數(程式設計之美)程式設計
- C語言中printf打出2進位制與16進位制數C語言
- javascript十進位制數字和二進位制相互轉換JavaScript
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 有趣的二進位制3—浮點數