//把每一位数取余,取余之后压入队列,然后从队列取出的数就是它的逆序数
int func(int n){
int temp=n;
queue<int> q;
while(temp){
q.push(temp%10);
temp=temp/10;
}//while
//每拿出一个数,原数据先乘以10倍再加上队首的数
int num_n=0;
while(!q.empty()){
num_n=num_n*10+q.front();
q.pop();
}//while
return num_n;
}
int main(){
int d;
cout<<"输入位数:";
cin>>d;
for(int i=pow(10,d-1);i<pow(10,d)/2;i++){
int num_n;
num_n=func(i);
//cout<<i<<"的逆序数为:"<<num_n<<endl;
for(int j=2;j<10;j++){
if(i*j==num_n) cout<<i<<"*"<<j<<"="<<num_n<<endl;
}//for,j
}//for,i
return 0;
}
倍逆序数--c++
最新推荐文章于 2024-04-28 10:50:33 发布