算法证明每一位都相同十进制数不是完全平方数

题意

Description

相信大家都做过"A+B Problem"了吧,这道题是它的加强版。

输入两个整数 A , B ,表示 A 个 B,例如 3 , 6 表示 666 。你只需要把“A个B”开根号。如果开根号后是个整数,输出开根后的数,否则输出“We donot have SPJ!”

解题思路

很显然,这题就是让我们判断“A个B”是不是完全平方数,我们从感觉上判断,形如 666 ⋯ 666 这样的数,一般来说都不是完全平方数,现在我们来证明一下。

证明

算法证明每一位都相同十进制数不是完全平方数_第1张图片

所以上述情况不是完全平方数。

算法证明每一位都相同十进制数不是完全平方数_第2张图片

故对于“ A个3,7”不是完全平方数。

所以对于任意三位数及以上的的"A个B",其必定不是完全平方数。

代码

// by Concyclics
#include 
using namespace std;
int main()
{
    int A,B;
    cin>>A>>B;
    if(B==0)
    {
        puts("0");
        return 0;
    }
    if(A==1)
    {
        if(B==1)
        {
            puts("1");
            return 0;
        }
        if(B==4)
        {
            puts("2");
            return 0;
        }
        if(B==9)
        {
            puts("3");
            return 0;
        }
    }
    puts("We donot have SPJ!");
    return 0;
}

以上就是算法证明每一位都相同十进制数不是完全平方数的详细内容,更多关于完全平方数的证明算法资料请关注脚本之家其它相关文章!

你可能感兴趣的:(算法证明每一位都相同十进制数不是完全平方数)