实验2

 1.题目描述

找出2-999之内的全部同构数。所谓同构数是这样一个数,它出现在它的平方数的右端,例如5的平方是2525的右端是5,故5是同构数。(答案:5 6 25 76 376 625)

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main(){
    for(int i=2;i<=999;i++){
        int len=10,k=i;
        while(k/10)     len*=10,k/=10;
        int s=(i*i)%len;
        if(s==i)    cout<<i<<" "; 
    }
    cout<<endl;
    getchar();
    getchar();
}

 

2.题目描述

求具有abcd=(ab+cd)2性质的四位数。例如3025这个数平分为两段为3025,使之相加后求平方,恰好等于3025本身。请求出所有具有这种性质的全部四位数。(答案:202530259801)

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main(){
    for(int i=1000;i<=9999;i++){
        int s=i/100,t=i%100;
        if((s+t)*(s+t)==i)    cout<<i<<" ";
    }
    cout<<endl;
    getchar();
    getchar();
}

 

3.题目描述

设计一个程序,求反序数。如:123,反序数是321

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main(){
    int n,s=0;
    cin>>n;
    while(n){
        int m=n%10;
        s+=m;
        s*=10;
        n/=10;
    }
    cout<<s/10<<endl;
    getchar();
    getchar();
}

 

4.题目描述

判断一个数是否是降序数。所谓降序数是高位数大于或等于低位数。如:985、211、8等。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main(){
    int n,next=-1,f=0;
    cin>>n;
    while(n){
        int m=n%10;
        if(m<next){
            f=1;
            break;
        }
        next=m;
        n/=10;
    }
    if(f)    cout<<"不是降序数"<<endl;
    else    cout<<"是降序数"<<endl;
    getchar();
    getchar();
}

 

posted @ 2021-09-24 20:02  LittleOrange  阅读(102)  评论(0编辑  收藏  举报