实验2
1.题目描述
找出2-999之内的全部同构数。所谓同构数是这样一个数,它出现在它的平方数的右端,例如5的平方是25,25的右端是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这个数平分为两段为30和25,使之相加后求平方,恰好等于3025本身。请求出所有具有这种性质的全部四位数。(答案:2025,3025,9801)
#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(); }