算法證明每一位都相同十進制數不是完全平方數

題意

Description

相信大傢都做過"A+B Problem"瞭吧,這道題是它的加強版。

輸入兩個整數 A , B ,表示 A 個 B,例如 3 , 6 表示 666 。你隻需要把“A個B”開根號。如果開根號後是個整數,輸出開根後的數,否則輸出“We donot have SPJ!”

解題思路

很顯然,這題就是讓我們判斷“A個B”是不是完全平方數,我們從感覺上判斷,形如 666 ⋯ 666 這樣的數,一般來說都不是完全平方數,現在我們來證明一下。

證明

所以上述情況不是完全平方數。

故對於“ A個3,7”不是完全平方數。

所以對於任意三位數及以上的的"A個B",其必定不是完全平方數。

代碼

// by Concyclics
#include <iostream>
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;
}

以上就是算法證明每一位都相同十進制數不是完全平方數的詳細內容,更多關於完全平方數的證明算法資料請關註WalkonNet其它相關文章!

推薦閱讀: