我得到兩個數字。第一個自然數n和第二個n位數。 n的範圍是1<=n<=50000
。問題是我怎麼能n * n
在大數字與例如49000
數字。我正在嘗試在字符串上做,然後我有每個數字的數組,然後呢?寫函數將n * n乘以字符串?我不知道如何開始它。有任何想法嗎?檢查號碼是否自守
編輯 我檢查號碼是否爲automorphic
但如何編輯它以使用數字來處理50000
數字?
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
unsigned int n, m = 10, a, b;
cin >> n;
b = m;
while (n > b) {
b *= m;
}
a = (n * n) % b;
if (a == n)
cout << "OK";
else
cout << "NO";
return 0;
}
爲你的作業寫一些代碼 – 2014-10-03 12:59:00
對於那些不知道的人,[自守數字](http://en.wikipedia.org/wiki/Automorphic_number)是一個數字,它的正方形「結束」數字本身。 – Jarod42 2014-10-03 13:00:40
我寫的程序檢查數字是否是自定義的,但它只適用於例如long int。有沒有可以存儲50000位的任何類型? – user2948474 2014-10-03 13:01:00