aabb 完全平方數

problem

輸出所有aabb的四位完全平方數(即前兩位數字相等,後兩位數字也相等)

solution

method1

第一次看到這個問題是這麼想的

for ( int i = 1000 ; i
但是這樣的解法迴圈就要跑9000次,並且要另外寫函數把每一位字都求出來,太過於麻煩。

method2

我們看看第二種想法,仔細想想 aabb = a 1100 + b 11 , a有1~9的可能性,b有0~9的可能性,用雙層迴圈去組合所有的可能,在判斷開根號是否為正整數

for ( int a = 1 ; a

method3

用一個變數x從一開始取平方(迴圈),當x取平方在1000~9999之間時,判斷此數的1.千位數是否等於百位數且2.千位數是否等於百位數,如果兩條件皆成立,則輸出

for(int x = 1; ; x++ )
{
n = x * x
if( n 9999)
break;

if(千位數 == 百位數 && 千位數 == 百位數)
    printf("%d",n); 

}
節錄自-提升程式設計的邏輯思考力 by 劉汝佳

关键字:算法

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部