在判斷n(n-1)/2時我們先來假定乙個任意整數k,那麼此時,2k一定是偶數,2k+1一定是奇數
接下來開始判斷n(n-1)/2的奇偶性,我們先來對分子的奇偶性進行分情況討論:
一. 當分子的n為偶數,n-1為奇數時:
因為此時(n-1)為奇數,(n-1)/2不為整數,n/2卻有兩種情況,(例如n=8時,n/2為偶數,當n=14時,n/2卻是奇數),所以此時繼續分兩種情況來討論
①當n/2為奇數時
n/2=2k+1→解得n=4k+2
把n=4k+2代入到n(n-1)/2中,解得n(n-1)/2=(2k+1)(4k+1)
此時2k+1一定為奇數、4k+1一定為奇數,因為奇數和奇數的乘積一定為奇數
所以當n=4k+2時:n(n-1)/2為奇數
②當n/2為偶數時
n/2=2k→解得n=4k
同理,把n=4k代入到n(n-1)/2中,解得n(n-1)/2=2k(4k-1)
此時2k一定為偶數、4k-1一定為奇數,奇數和偶數的乘積一定為偶數
所以當n=4k時:n(n-1)/2為偶數
二. 當分子的n為奇數,n-1為偶數時:
此時n為奇數,n/2不為整數,(n-1)/2卻有兩種情況,(例如n-1=8時,(n-1)/2為偶數,當(n-1)=14時,(n-1)/2卻是奇數),所以此時仍然要分兩種情況來討論
①當(n-1)/2為奇數時
(n-1)/2=2k+1→解得n=4k+3
把n=4k+3代入到n(n-1)/2中,解得n(n-1)/2=(2k+1)(4k+3)
此時2k+1一定為奇數、4k+3一定為奇數,因為奇數和奇數的乘積一定為奇數
所以當n=4k+3時:n(n-1)/2為奇數
②當(n-1)/2為偶數時
(n-1)/2=2k→解得n=4k+1
同理,把n=4k+1代入到n(n-1)/2中,解得n(n-1)/2=2k(4k+1)
此時2k一定為偶數、4k+1一定為奇數,奇數和偶數的乘積一定為偶數
所以當n=4k+1時:n(n-1)/2為偶數
綜上所述:
當n=4k時,n(n-1)/2為偶數
當n=4k+1時,n(n-1)/2為偶數
當n=4k+2時,n(n-1)/2為奇數
當n=4k+3時,n(n-1)/2為奇數
以上便是當n為整數時,n(n-1)/2奇偶性的判斷過程。
判斷n個數是否為連續的?
今天看了csdn社群中sungj0917提出的問題 有n個整數,有什麼好的演算法確定這n個數是連續的嗎 於是我寫了乙個o n 的演算法,當然,我用空間換時間,也就是說用了很多變數記錄,希望大家丟磚。演算法支援重複數字。思路如下 遍歷一次 目前是沒想到如何避免遍歷 在遍歷過程中做以下事 1.記錄最大m...
求和為n的連續正整數序列
題目 輸入乙個正數n,輸出所有和為n連續正整數序列。例如輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以輸出3個連續序列1 5 4 6和7 8。解法1 因為整數序列是有序的,可以設立兩個游標begin和end,通過判區間 begin,end 的和是否為n來得到這個序列。如果區間和大於...
判斷輸入的字元是否為整數 包含整數格式驗證
在專案中,很多時候都會有輸入框的存在,為了防止使用者隨意輸入都會有限制,最近遇到一種需求,輸入 時只能輸入數字型別,並且輸入的數字格式要正確,在網上搜尋的很多驗證數字的對格式沒有校驗,所以自己就完善了一下,使用的正規表示式,但是由於自己正則知識實在匱乏,寫的比較low,不過也能實現最終的效果吧 能通...