一個十進制天然數,它的七進制與九進製表示都是三位數,且七進制與九進制的三位數碼錶示順序正好相反。編程求此天然數,並輸出顯示。ios
(無)
(不提供)
#include<iostream> using namespace std; int reverse(int n) { int tmp,r=0,sign; if(n==0) return 0; sign=n<0?-1:1; tmp=n*sign; do{ r=r*10+tmp%10; tmp/=10; }while(tmp); return r*sign; } int length(int n) { //求一個整數的位數 int x,r=0,sign; sign=n>0?1:-1; x=sign*n; if(x==0) return 0; while(x) { r++; x/=10; } return r; } int jz(int m,int n) { const int b=10; bool isNo1=true; int s,r,t,i=1,result=0; s=m; while(s) { t=s/n; r=s%n; if(r==0 && i==1) { isNo1=false;i++;} s=t; result=r%10+result*10; } if(isNo1==false) return result; else return result*b; } int main() { int x,y,z,n; //枚舉n 若n的七進制是三位數 且逆置後是等於九進制 則輸出n; for(int i=1;i<1000;++i) { x=jz(i,7); y=jz(i,9); z=reverse(x); n=length(x); if((n==3) && (z==y)) //cout<<x<<" "<<y<<" "<<z<<" "<<n<<endl; cout<<i<<endl<<y<<endl<<x; //提交時按x->y的順序輸出,結果判爲錯,只好改爲yx的順序,竟然accept } return 0; }