題目標題: 排它平方數
小明正看著 203879 這個數字發呆。
原來,203879 * 203879 = 41566646641
這有什么神奇呢?仔細觀察,203879 是個6位數,并且它的每個數位上的數字都是不同的,并且它平方后的所有數位上都不出現組成它自身的數字。
具有這樣特點的6位數還有一個,請你找出它!
再歸納一下篩選要求: 1. 6位正整數 2. 每個數位上的數字不同 3. 其平方數的每個數位不含原數字的任何組成數位 答案是一個6位的正整數。
請通過瀏覽器提交答案。
注意:只提交另一6位數,題中已經給出的這個不要提交。
注意:不要書寫其它的內容(比如:說明性的文字)。
(5分)
#include <cstdio>#include <iostream>using namespace std;int main(){ //int 超了最大的數的范圍,所以用long long long long i,t,m,q,j; long long a[6]; long long b[12]; for(i = 100000; i < 999999; i++){ t = i; m = t % 10; q = 0; while(t > 0){ a[q] = m; t = t/10; m = t%10; q++; } if(a[0]!=a[1]&&a[0]!=a[2]&&a[0]!=a[3]&&a[0]!=a[4]&&a[0]!=a[5] && a[1]!=a[2]&&a[1]!=a[3]&&a[1]!=a[4]&&a[1]!=a[5] && a[2]!=a[3]&&a[2]!=a[4]&&a[2]!=a[5] && a[3]!=a[4]&&a[3]!=a[5] && a[4]!=a[5]){ t = i*i; m = t%10; q = 0; while(t > 0){ b[q] = m; t = t/10; m = t%10; q++; } for(q = 0; q <= 5; q++){ for(j = 0; j <= 11; j++){ if(a[q] == b[j]) goto loop; else if(a[q] != b[j])continue; } loop:if(q!=6 && j!=12)break; } if(q == 6 && j == 12)// 答案是 i == 639172新聞熱點
疑難解答