华科机考: 守形数

时间限制:1秒  空间限制:32768K 

 题目描述

守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。

输入描述: 输入包括1个整数N,2<=N<100。

输出描述: 可能有多组测试数据,对于每组数据, 输出"Yes!”表示N是守形数。 输出"No!”表示N不是守形数。

输入例子: 25

              4

输出例子: Yes!

              No!

思路:平方后对低位取余,再判断书否相等即可。

        (之前没看见n<100o(╯□╰)o)

代码:

#include <iostream>

using namespace std;

int pow(int n){
   int ans=1;
    for(int i=1;i<=n;i++)
        ans=ans*10;
    return ans;
}
int main(){
  int n;
  int countl,temp,tmp,nn;
  while(cin>>n){
   countl=0;
   temp=n*n;
   nn=n;
   while(n){
     countl++;
     n=n/10;
   }
  tmp=pow(countl);
  if(temp%tmp==nn)
    cout<<"Yes!"<<endl;
  else
    cout<<"No!"<<endl;
  }
  return 0;
}
原文地址:https://www.cnblogs.com/mlgjb/p/6681350.html