當前位置:編程學習大全網 - 編程語言 - 編程cmath

編程cmath

解決方案思維

如果壹個數可以表示為整數的平方,則稱它為完全平方數。例如:0,1,4,9,16,25,...

這個問題有兩個關鍵點:第壹是求四位數的完全平方;二是判斷這個完整平方數的前兩位是否相同,後兩位是否相同。

第壹個問題比較簡單。四位數的範圍從1000到9999,但不需要從1000開始判斷是否是完整的平方數。要做到這壹點,需要測試9000個數字,每個數字都需要看是否是完全平方數,這需要大量的計算。其實妳只需要從32到99開始,壹個壹個的平方,就可以得到所有四位數的完整平方。因為31的平方是三位數,100的平方是五位數,妳只需要在32到99的平方中壹個壹個的找就可以了。

第二個問題在C語言中利用余數運算符%和整數變量除法規則就可以巧妙實現。比如比較上面的1234,我們可以把1234分成兩段如下:int?a = 1234/100;int?b = 1234% 100;因為C語言中的整數除法會自動忽略小數部分,所以int?a=1234/100的結果是A = 12;余數運算符得到余數,所以int?B=1234%100的意思是1234除以100的余數,結果是b=34,這樣1234就成功地分為12和34,然後就足以判斷A位和B位是否分別與十位相同。判斷的方法如下:if(a/10==a%10),因為a/10會得到A的十位數,a%10會得到A的個位數,所以只要這兩個相等,就說明A的個位數與十位數相同,所以上面問題的具體代碼如下。

程序代碼

#包含?& ltiostream & gt?//控制臺操作頭文件

int?Main()//主函數

{int?我,a,b;?//整數變量

Printf("前兩位相同,後兩位相同的四位完全正方形為:");

for(I = 32;我& lt100;I++)//通過循環逐個檢測四位完全正方形。

{ a =(I * I)/100;//獲取完整平方數的前兩位數字

b =(I * I)% 100;//獲取完整平方數的後兩位數字

if(a/10 = = a % 10 & amp;& ampB/10==b%10)//如果前兩位和後兩位分別相同,

printf(" % d(% d的平方)",i*i,I);}//輸出這個四位數的完整平方。

printf(" \ n ");//換行

系統(“暫停”);?//暫停屏幕以查看顯示結果。

回歸?0;}?//結束程序

運行結果

上面的程序在DEVC++中運行,結果只有7744符合要求,是88的平方。具體截圖如下:

  • 上一篇:現代家庭裝修主要項目簡介(初裝者必看)
  • 下一篇:網吧入侵管理機數據庫求教
  • copyright 2024編程學習大全網