一個自然數的七進製表達式是一個三位數,而這個自然數的九進製表達式也是一個三位數,而且這兩個三位數的數碼順序恰好相反.
阿新 • • 發佈:2019-01-27
條理清晰,封裝合理,測試完整,linux GCC
#include <stdio.h> typedef enum boolean{FALSE, TRUE}BOOL; //this function is to find a natural num within 3,whoes //7 decimal is the reverse to 9 decimal. //function to calculate a Natural num to a decimal low euqal than 10. //num the num that to be dealed. //whichDecimal what type of data you want such as HEX OCT or binary. int ExchangeDecimal(int num, int whichDecimal) { int tmp = 0; int multiRate = 1; while(num > whichDecimal) { tmp += (num % whichDecimal)*multiRate; num = num / whichDecimal; multiRate *=10; } tmp += num * multiRate; return tmp; } //reverse num int ReverseNum(int num) { int cookData = 0; while(num > 0) { cookData *= 10; cookData += (num%10); num = num / 10; } return cookData; } //find the num and print the num //num to be dealed ,num no big than 999 is required. BOOL FindData(int num) { int sevenDecimal = 0; int nineDecimal = 0; int reverseNum = 0; //first calculate the targetdecimal; sevenDecimal = ExchangeDecimal(num, 7); nineDecimal = ExchangeDecimal(num, 9); //7 Decimal and 9 decimal not big than 999 if(sevenDecimal>777 || nineDecimal >999) return FALSE; //reverse 9decimal reverseNum = ReverseNum(nineDecimal); if(sevenDecimal == reverseNum) printf("%d\n",num); else return FALSE; } int main(int argc, char **argv) { if(argc < 3) { printf("Usage:\n./a.out num decimal\n"); return; } int num = atoi(argv[1]); int dec = atoi(argv[2]); printf("The input: %d\nThe Dec: %d",num,dec); printf("The output: %d\n",ExchangeDecimal(num,dec)); printf("The reverse %d is %d\n",num,ReverseNum(num)); int i = 999; while(i) { FindData(i); i--; } return 0; }