Code vs 2145 判斷奇偶性

2021-06-28 14:36:01 字數 1142 閱讀 3536

時間限制: 1 s

空間限制: 1000 kb

題目等級 : 青銅 bronze

題解

檢視執行結果

判斷函式y=x^n次方的奇偶性若是奇函式就輸出ji,偶函式輸出ou

輸入描述 input description

一行輸入n

輸出描述 output description

一行,輸出答案

樣例輸入 sample input

2 樣例輸出 sample output

ou 資料範圍及提示 data size & hint

n為正整數,挺大,這次真的大了

解題思路:

其實判斷奇偶性的題目,我們在很多題中都見過,無疑是用x%2==1 or x%2==0 來判斷,但是對於超過int 甚至long long 的數字或者是有時間限制的題目來說,我們這樣做肯定是行不通的,那麼,就得使用一些技巧,把其間不必要的計算過程和容易產生錯誤的計算過程盡量的避免掉,那麼我們才能得到正確的結果。

這道題用到的最為普遍的思想就是說,乙個數無論他多大,那麼我們只用判斷他的最後一位是奇數還是偶數就可以了,那麼我們把這個數字存放在乙個char陣列裡,然後將最後一位轉化成為整數,s[len-1]-'0',通過對這個數字的奇偶性進行判斷就可以了~

**:# include# include# includeusing namespace std;

char s[10000];

int main(void)

{ cin>>s;

int len = strlen(s);

if ( (s[len-1]-'0')%2==1 )

{cout<<"ji"<

ps:其他同樣可以用來判斷奇偶數的方法如下:

if( x&1 == 1 )

cout<<"ji"cout<<"ou"<

我們知道計算機中的數字通常用二進位制補碼表示。

如果為正數,補碼與原碼相同,直接看最後一位(因為數字1的前面n位均為0,跟它做與運算,前面肯定為0),奇數為1,偶數為0,與1相與,結果不變。

如果為負數,補碼轉原碼:保持符號位不動,其它各位取反+1,即為負數的絕對值原碼全部取反+1。還是看最後1位,先取反,再+1,結果還是和原來相同。進行與運算時還是原來的末位,所以用跟1做與運算還是保持原來的結果。

wikioi 2145 判斷奇偶性

題目描述 description 判斷函式y x n次方的奇偶性若是奇函式就輸出ji,偶函式輸出ou 輸入描述 input description 一行輸入n 輸出描述 output description 一行,輸出答案 樣例輸入 sample input 樣例輸出 sample output o...

1085 判斷奇偶性

判斷奇偶性 time limit 1000ms memory limit 65536k total submit 128 accepted 58 description 計算乙個無符號整數x的二進位制中1的個數是奇數還是偶數。input 多組測試資料。每組測試資料報括乙個無符號整數n 0 n 2 3...

奇偶性剪枝

我們先來看一道題目 有乙個n x m大小的迷宮。其中字元 s 表示起點,字元 d 表示出口,字元 x 表示牆壁,字元,表示平地。你需要從 s 出發走到 d 每次只能向上下左右相鄰的位置移動,並且不能走出地圖,也不能走進牆壁。每次移動消耗1時間,走過路都會塌陷,因此不能走回頭路或者原地不動。現在已知出...