用C 程式設計求出四位完全平方數,前兩個數字相同,後兩個數字相同

2021-04-10 16:42:45 字數 5725 閱讀 8231

1樓:匿名使用者

【解題思路】

一個數若能表示成某個整數的平方的形式,則稱這個數為完全平方數。比如: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的個位和十位相同,因此上題的具體**如下:

【程式**】

#include //控制檯操作標頭檔案

int main()                      //主函式

//輸出這個四位數的完全平方數

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

system("pause");               //螢幕暫停,以便看到顯示結果

return 0;}                     //結束程式

【執行結果】

以上程式在dev  c++中執行通過,執行結果是隻有7744這個數符合要求,它是88的平方。具體截圖如下:

2樓:

不應該很複雜——

//#include "stdafx.h"//vc++6.0加上這一行.

#include "stdio.h"

void main(void)

3樓:匿名使用者

#include

#include

void main()

}7744=88*88

4樓:匿名使用者

#include

#include

using namespace std;

int main()

}return 0;}

5樓:匿名使用者

#include

int main()}

6樓:匿名使用者

這個應該可

以:#include

#include

using namespace std;

bool judge(float s)

int main()}}

for(int i=0;i

cout<

return 0;}

c語言中如何判斷一個數是完全平方數

7樓:幻翼高達

需要準備的材料分別有:電腦、c語言編譯器。

1、首先,開啟c語言編譯器,新建初始.cpp檔案,例如:test.cpp。

2、其次,在test.cpp檔案中,輸入c語言**:

int a = 64;double c = sqrt(a);

if (c == int(c))

printf("是完全平方數");

else

printf("不是完全平方數");

3、編譯器執行test.cpp檔案,此時成功快速識別出了是不是完全平方數。

8樓:匿名使用者

#include

#include

int main()}

9樓:凌亂心扉

#include

#include

int issquare(int n)

}return a;

}int main()

else

printf("no");

return 0;}

10樓:匿名使用者

對於一個比較大的整數,比如:23916,一共有5位數字,假設它是完全平方數,那麼它的平方根應該是一個3位數,因為100的平方是最小的5位數。

同時,這個平方根應該小於200,因為200的平方是40000比原數大。取箇中間數150,因為已知15的平方是225,所以很容易算出150的平方是22500,比原數小。

同理,算出160的平方是25600,比原數大。所以,如果24346時一個完全平方數,它的平方根應該大於150且小於160。完全平方數,凡是個位為6的,其平方根個位必為4或6。

計算154的完全平方,等於 23716 比 23916 小200,計算156的完全平方,等於 24336 比 23916 大420,所以23916不是完全平方數。

擴充套件資料

應用:有多少個正整數n,使n!+2019是完全平方數,注:n!=1*2*…*n,即n的階乘。

講解思路:這道題屬於完全平方數問題,要判斷一個數是完全平方數,除了嚴格驗證外,目前還沒有完善的方法。但要判斷一個數不是完全平方數,有很多種性質可以用,

這裡採用除以4的餘數來判別。由於n!具有十分特別的性質,因此總的解題思路是:先判斷當n>=4時的情況,然後對n<4時的3個數逐一驗證。

步驟1:

先思考第一個問題,

當n大於等於4時,

n!+2019除以4的餘數是多少。

此時n!=1*2*3*4…*n,

故n!是4的整數倍,

而2019除以4的餘數是3,

因此n!+2019除以4的餘數是3。

步驟2:

再思考第二個問題,

當n大於等於4時,

n!+2019可能是完全平方數嗎。

此時n!+2019是奇數,

如果它是完全平方數,

則存在某自然數k,

使n!+2019=(2k+1)^2

=4k^2+4k+1,

顯然該數除以4的餘數為1,

這與步驟1的結論想矛盾,

因此不是完全平方數。

注:k^2表示k的平方。

步驟3:

再思考第三個問題,

考慮原題目的答案。

從步驟2直到n小於4,

下面對n=1,2,3分別討論:

當n=1時,

n!+2019=2020不是完全平方數;

當n=2時,

n!+2019=2021不是完全平方數;

當n=3時,

n!+2019=2025=45^2,

是完全平方數。

所以原題的答案只有n=3。

11樓:珂珂珂樂

你把double b,c,x,y;定義成int型別就正確了。如果你定義成double行那麼if(c==a)這個條件是永遠成立的。

12樓:匿名使用者

完全平方即用一個整數乘以自己例如1*1,2*2,3*3等等,依此類推。若一個數能表示成某個數的平方的形式,則稱這個數為完全平方數。完全平方數是非負數。

而一個完全平方數的項有兩個。注意不要與完全平方式所混淆。

例如:0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529…

觀察這些完全平方數,可以獲得對它們的個位數、十位數、數字和等的規律性的認識。下面我們來研究完全平方數的一些常用性質:

性質1:末位數只能是0,1,4,5,6,9。

(此為完全平方數的必要不充分條件,且定義為"一個數如果是另一個整數的完全平方,那麼我們就稱這個數為完全平方數",0為整數,故0是完全平方數)

性質2:奇數的平方的個位數字一定是奇數,偶數的平方的個位數一定是偶數。

證明 奇數必為下列五種形式之一:

10a+1,10a+3,10a+5,10a+7,10a+9

分別平方後,得

綜上各種情形可知:奇數的平方,個位數字為奇數1,5,9;十位數字為偶數。

性質3:如果十位數字是奇數,則它的個位數字一定是6;反之也成立

證明 已知

,證明k為奇數。因為k的個位數為6,所以m的個位數為4或6,於是可設m=10n+4或10n+6。則或即

或∴ k為奇數。

推論1:如果一個數的十位數字是奇數,而個位數字不是6,那麼這個數一定不是完全平方數。

推論2:如果一個完全平方數的個位數字不是6,則它的十位數字是偶數。

性質4:偶數的平方是4的倍數;奇數的平方是4的倍數加1。

這是因為

性質5:奇數的平方是8n+1型;偶數的平方為8n或8n+4型。

(奇數:n比那個所乘的數-1;偶數:奇數:n比那個所乘的數-2)

在性質4的證明中,由k(k+1)一定為偶數可得到 是8n+1型的數;由為奇數或偶數可得(2k)為8n型或8n+4型的數。

性質6:形式必為下列兩種之一:3k,3k+1。

因為自然數被3除按餘數的不同可以分為三類:3m,3m+1,3m+2。平方後,分別得

同理可以得到:

性質7:不是5的因數或倍數的數的平方為5k+-1型,是5的因數或倍數的數為5k型。

性質8:形式具有下列形式之一:16m,16m+1,16m+4,16m+9。

除了上面關於個位數,十位數和餘數的性質之外,還可研究完全平方數各位數字之和。例如,256它的各位數字相加為2+5+6=13,13叫做256的各位數字和。如果再把13的各位數字相加:

1+3=4,4也可以叫做256的各位數字的和。下面我們提到的一個數的各位數字之和是指把它的各位數字相加,如果得到的數字之和不是一位數,就把所得的數字再相加,直到成為一位數為止。我們可以得到下面的命題:

一個數的數字和等於這個數被9除的餘數。

下面以四位數為例來說明這個命題。

設四位數為,則

1000a+100b+10c+d

= 999a+99b+9c+(a+b+c+d)

=9(111a+11b+c)+(a+b+c+d)

顯然,a+b+c+d是四位數被9除的餘數。

對於n位數,也可以仿此法予以證明。

關於完全平方數的數字和有下面的性質:

性質9:數字之和只能是0,1,4,7,9。

證明 因為一個整數被9除只能是9k,9k±1,9k±2,9k±3,9k±4這幾種形式,而

除了以上幾條性質以外,還有下列重要性質:

性質10:為完全平方數的充分必要條件是b為完全平方數。

證明 充分性:設b為平方數,則=(ac)

必要性:若為完全平方數,=,則

性質11:如果質數p能整除a,但p的平方不能整除a,則a不是完全平方數。

證明 由題設可知,a有質因數p,但無因數,可知a分解成標準式時,p的次方為1,而完全平方數分解成標準式時,各質因數的次方均為偶數,可見a不是完全平方數。

性質12:在兩個相鄰的整數的平方數之間的所有整數都不是完全平方數。

即若則k一定不是整數。

性質13:一個正整數n是完全平方數的充分必要條件是n有奇數個因數(包括1和n本身)。

用2100這數字組成兩個四位數要使它們

答 這兩個四位數分別是2010和1020。希望對你有所幫助 還望採納 0210和0120 0210 0120 90 用0 1 2 3 4 5中的四個數字,共能組成 個各位數字不同的四位數?共能組成300個各位數字不同的四位數。按照數位的不同可能性進行分析 1 萬位數字不能為0,可以從剩餘的5個數字中...

用0數字可以組成多少個不同的四位數 每個數字只用一次寫過程

千位不bai 能0開頭,有1 2 3,這樣 du3個選擇。zhi 百位除去千位用dao過的數字專 還有剩屬下3個數字可以選擇,十位出去千位 百位用過的數字,還剩2個選擇,個位只剩下一個選擇。故一共可以組成的四位數有 3 3 2 1 18個。放在千位的有 不能放0,只能放1 2 3 3種選擇放在百位的...

用0 1 2 3 4 5 6 7 8組成兩個四位數,這兩個四位數的差最小是

應該是數字不能重複吧,所以千位數只能差1,然後出一個最大的3位數,為876,一個最小的三位數012,所以5012 4876 4012 3876 136 答案 5012 4876 136 用0,1,2,3,4,5,6,7,8組成兩個四位數,這兩個四位數的差最小是多少 大家都說了那我也不囉嗦了,不過我這...