NOIP(C++)信息学奥赛课程--持续更新
系列文章目錄
C++信息學奧賽課程 想學的收藏一下不然就找不到了
文章目錄
- 系列文章目錄
- 前言
- 第一課初識C++程序
- 0.程序框架
- 1.數據的輸出
- 2.輸出的內容
- 3.輸出換行
- 4.連續輸出
- 5.練習
- 6.設置文字和背景
- 7.讓電腦發出聲音
- 8.總結
- 第二課變量和數據的輸入
- 1.什么是變量
- 2.變量中存數據
- 3.修改變量的數據
- 4.變量的命名規則
- 5.變量間的賦值
- 6.交換兩個變量的值
- 7.數據的輸入
- 8.總結
- 第三課表達式和算術運算符
- 1.輸出運算結果
- 2.算術運算符和表達式
- 3.將價格保存到變量中
- 4.算術運算符的應用
- 5.取余運算符
- 6.交換兩位數字的位置
- 7.豎式運算18
- 8.總結
- 第四課 數據類型之浮點數
- 1.什么是浮點數?
- 2.計算三角形的面積
- 3.什么是數據類型轉換
- 4.cout格式化輸出
- 5.常量
- 6.復合賦值運算符
- 7.總結
- 第五課 基本數據類型
- 單詞
- 1.認識C++中的基本數據類型
- 2.基本數據類型之整型
- 1.整型數據直接賦值
- 2.表達式的結果取整數部分進行賦值
- 3.運算時要防止溢出的發生
- 4.sizeof方法
- 3.基本數據類型之浮點型
- 1.浮點型數據表示形式
- 2.默認的浮點型數據是double型,如果需要表示float類型,需要加”f”或者”F”后綴。
- 3.保留指定小數位數
- 4.例題 求陰影部分的面積
- 5. 計算圓形的周長和面積
- 第六課 基本數據類型
- 1.基本數據類型之字符型
- 1.基本數據類型之字符型注意:
- 2.輸出字母對應的ASCII值
- 3.輸入數字字符,輸出對應的數字
- 4.輸入大寫字母,輸出對應的小寫字母
- 5.計算圓形的周長和面積
- 2.基本數據類型之布爾型
- 1.基本數據類型之布爾型 bool
- A.布爾類型轉為整數類型
- B.整數類型轉布爾類型
- 2.數據類型之間的隱式轉換
- 3.數據類型之間的強制轉換
- 4.數據類型轉換之溢出
- 5.練習一下
- 6.練習計算球的體積
- 第七課 運算符與判斷結構if
- 1.復合運算符號
- 2.關系運算符
- 3.關系表達式
- 4.程序結構
- 5.if語句
- 6.用if語句判斷變量是否等于100
- 7.if語句的使用—判斷整數的奇偶性
- 8.if 語句的使用判斷是否及格
- 9.計算蘋果總價
- 第八課 判斷結構else語句
- 1.if語句語法結構
- 2.if..else..語句的使用
- 3.if..else if..else 語句的使用
- 1.語法結構
- 2.騎車與走路(例題)
- 3.判斷倍數(例題)
- 第九課 if...else語句運用
- 1.分支嵌套
- 2.例題判斷賬號密碼
- 3. 猜數游戲
- 4.計算郵資
- 5.判斷能否被3,5整除
- 第十課 邏輯運算符使用
- 1.認識邏輯運算
- 2.邏輯表達式
- 3.單獨解析:
- A.邏輯非:!
- B.邏輯與:&&
- B-1.三角形判斷
- C.邏輯與:||
- 4.例題:
- 1:判斷是否為一門課不及格
- 2:邏輯運算符優先級
- 3:用邏輯表達式判斷是否為閏年
- 4:點和正方形的關系
前言
隨著人工智能的不斷發展,個人特長也越來越重要,很多學生要進入一個好的學校完全考裸分,很難,本文就想給到部分學生提供一個學習C++信息學的機會。(每周三更新新課,想學的朋友可以收藏+粉絲,帶你從0-1玩轉信息學奧賽)
第一課初識C++程序
使用C++程序讓電腦和我們進行交流;
0.程序框架
#include <iostream> //包含頭文件 using namespace std; //使用標準名字空間 int main(){ //程序的主函數入口return 0; //函數返回值 0 }1.數據的輸出
代碼如下(示例):
cout<<“Hello world”; 顯示器 輸出運算符 輸出的內容 分號結尾2.輸出的內容
代碼如下(示例):
cout<<"Hello world"; cout<< "123456"; cout<<"@ :)"; cout<<"中國"3.輸出換行
cout << end; end->結束 l->行 endl就是結束行4.連續輸出
cout<<項目1<<項目2<<項目3<<項目4<<endl; //連續輸出不換行 cout<<項目1<<endl<<項目2<<<endl<<項目3<<endl<<項目4<<endl; //連續輸出換行5.練習
//輸出一個10*10的正方形用*號表示6.設置文字和背景
system("顏色 背景顏色文本顏色"); system("color e1")7.讓電腦發出聲音
Beep(聲音的頻率,時長,單位是毫秒) Beep(1000,500);8.總結
學習的電腦的輸出語句
學習了讓電腦發出聲音
第二課變量和數據的輸入
1.什么是變量
儲存數據的“箱子”-變量
int a; int->稱為數據類型 a->稱為變量名2.變量中存數據
賦值->將數據存儲到變量中的
賦值運算符號 =
拓展:
創建變量又稱定義變量; 在同一{}中不能創建相同的變量; 先定義在賦值 int b; b = 2; 定義就賦值 int c = 2;3.修改變量的數據
又稱為變量的重新賦值
int a; a = 1; a = 2; 代碼邏輯從上到下執行,最后的結果就是a = 2;4.變量的命名規則
1:字母、數字、下劃線_ ;
2:區分大小寫;
3:數字不能開頭;
4:不能使用int這種已經有特殊意義的變量;
5.變量間的賦值
同時定義多個變量
int a,b; int a=b=1; int a=1,b=2; int m=200; int n=m; cout<<n<<endl;//還是2006.交換兩個變量的值
//方法1: int a = 1; int b = 2; int c = a; b = a; a = c; //方法2: //swap()函數的使用 int d=3 , g=4; swap(d,g); cout<<d<<g<<endl;7.數據的輸入
單個輸入:
int a; cin >> 數據存儲變量; cin >> a; //就可以往變量a中輸入一個整數值;連續輸入:
int a,b; cin>>a>>b;舉例:
輸入兩個數,輸出兩個數的和 int a,b; cin>>a>>b; cout<<a+b;8.總結
1:變量的命名規則,什么是變量
2:賦值= 意思是將變量右邊的值賦值給變量左邊的名字
3:變量的重新賦值
4:輸入運算符 >> 連續的輸入 cin>>a>>b;
第三課表達式和算術運算符
1.輸出運算結果
輸出兩個數的和
int a=b=6; cout<<a+b;2.算術運算符和表達式
區別: 數學 c++ + + - - x * ÷ \ () ()表達式:數學算式 : 6+3
解釋:用運算符 將 操作數 連接起來的式子叫做表達式
3.將價格保存到變量中
用戶輸入價格后在進行輸出,好處在于價格的變化不影響程序的編程,也無需修改程序就能獲得值
cout<<7+4<<endl; int a,b; cin>>a>>b; cout<<a+b<<endl;表達式的結果:
a = 6; b = 3; a+b; //如果還想使用結果那么就可以申明新的變量來接收 int c = a+b; cout<<c<<endl;//就輸出了a+b的值4.算術運算符的應用
天安門廣場位于北京市中心,可容納100萬人舉行盛大集會,是世界上最大的城市廣場。天安門廣場南北長880米,東西寬500米。請問它的周長和面積分別是多少?
#include<iostream> using namespace std; int main(){int a,b;cin>>a>>b;int c = (a+b)*2;cout<<"周長="<<c<<endl;int s = a*b;cout<<"面積="<<s<<endl;return 0; }編寫一個程序,算一算《雪花》第一句中數字1、2、3、4的和是多少?
雪花一片二片三四片,
五片六片七八片,
九片十片無數片,
飛入梅花都不見。
5.取余運算符
問題:還剩下多少錢?
童童從零花錢中拿了50元錢去文具店買練習本,—個練習本3元,請問他最多能買多少個練習本,還剩下多少錢?
50÷3=16…… 2
取余運算:兩個數相除的余數
數學:5 ÷ 2 = 2 ····· 1
c++ :
5 / 2 = 2 商
5%2 = 1 余數
6.交換兩位數字的位置
前情提要
尼克家種的胡蘿卜今年不僅大豐收,而且還收獲了一棵超級胡蘿卜王。強盜兔聽到了這個消息,就想把這棵蘿卜占為己有。這天強盜兔來到尼克家門口,記下了他家的門牌號—62號,準備晚上再動手。這件事剛好被尼克發現了,聰明的尼克把門牌號上的十位數字和個位數字換一下,變成了26號并報警。晚上,愚蠢的強盜兔找了半天都沒找到62號,同時被警察逮了個正著。
7.豎式運算18
輸出:18+ 870 ----------888#include <iostream> using namespace std; int main(){int a= 18, b = 870;int c = a +b;cout << " "<< a << endl;cout << " "<< "+"<<" "<< b <<endl;cout <<"----------" << endl;cout <<" "<< c << endl;return 0; }上面輸出要是改變了一個值,那么輸出的空格又要變化才能對齊;
setw(-10)代表輸出內容是左對齊,一共占10個位置)
setw(10)代表輸出內容是右對齊,一共占10個位置)
8.總結
第四課 數據類型之浮點數
浮點數顧名思義小數,本節課學習C++中小數的表示方式
課題引入:
童童買了一根鋼筆和一個筆袋,請問一共花了多少錢?
品名:鋼筆單價:3.5元
品名:筆袋單價:9.9元
不難發現輸出的是整數12;怎么表示小數呢?
1.什么是浮點數?
數據類型
int 整數類型
float 浮點數類型
那么代碼更改為如下就可實現
2.計算三角形的面積
古埃及國王也稱為法老,是古埃及最大的奴隸主,擁有至高無上的權力,他們被看做神的化身。他們為自己修建了巨大的陵墓,因其外形像漢字的“金”字,被稱為“金字塔”。金字塔是法老權力的象征,埃及至今共發現金字塔96座。
例題:
“金字塔”的底是正方形,側面由四個大小相等的等腰三角形構成。
請編寫一個程序,輸入底和高,輸出三角形的面積。
提示:三角形面積=底*高/2
區別,整數在相乘相除時得到還是一個整數,那么如果在運算過程中遇到了小數,它會自動轉為小數運算,得到小數的結果;
3.什么是數據類型轉換
不同類型的數據之間,可以進行類型轉換。
int -> float 2->2.0 flota -> int 2.0->2float a = 2.5; cout << int(a) << endl;//浮點型轉換成整型; int b = 2; cout << float(b)<< endl;//整型轉換成浮點型;練習:
1 .童童的體重是33.5千克,美美的體重的是28.6千克,達達的體重是38.2千克,他們的平均體重是多少?請使用鍵盤輸入的方式輸入體重。
4.cout格式化輸出
格式化輸出
| precision(n) | setprecision(n) | 設置實數的精度為n位 |
| width(n) | setw[n) | 設置字段亮度為n位 |
| setf(ios::state) | setiosflags(ios::state) | 設置輸出格式狀態,括號中應該給出格式狀態 |
| fill(c) | setfill(c) | 設置填充字符c |
| unsetf(ios::state) | resetioflags(ios::state) | 終止己設置的輸出格式狀態 |
舉例講解:
float a = 3.19; cout<<setprecision(2)<<a<<endl; //3.2 //保留的數字的兩位,包含整數+小數位數 cout.precision(2); cout<<a<<endl; //3.2 cout<<setw(10)<<setiosflags(ios:right)<<a<<endl; //輸出的就是右對齊一個10個字符位置 //自行練習...........植樹節
植樹節到了,童程童美學院組織植樹活動,規定每位同學品要完成兩棵小樹苗的種植。A班、B班、C班的學生人數通過鍵盤輸入。
分別計算A班、B班、C班種植的小樹苗數量。
5.常量
程序運行過程中,不會改變的量,稱為常量。
const in N = 2;
常量的變量名我們約定都是大寫;
const 是定義常量的關鍵字,常量定義后無法改變,上面題目上a2 b2 c*2其中2就是常量
定義常量的好處:
1:常量通常有明確的含義,讓代碼便于理解;
2:便統一修改;
例題1:
從鍵盤輸入圓的半徑r,計算圓的面積和周長。
面積公式:s=π x r x r
周長公式: c =2×π×r
注:π圓周率是周長和直徑d的比,是一個固定值,約等于3.14
例題2:
細胞分裂
細胞學說是1838-1839年由德國的植物學家施萊登和動物學家施旺提出。該學說認為一切生物都是由細胞構成,細胞是生命的結構單位,細胞只能由細胞分裂而來。
1個細胞,第一次分裂成2個,第二次2個分裂成4個,…編寫一個程序,算一算第5次分裂成幾個。
1個細胞,第一次分裂成2個,第二次2個分裂成4個,…編寫一個程序,算—算第5次分裂成幾個。
int n = 1;
第一次: n = n*2;
第二次: n = n * 2;
第三次: n = n * 2;
…
6.復合賦值運算符
+=加等 *=乘等 /=除等 -=減等 %=取余等a = a + 1 -> a+=1 a = a / 2 -> a/=2//練習 //自行計算如下代碼結果 int x = 1, y = 2,z = 3; z *= x+y*3; cout<<z<<endl; x = (z+=3)*2; cout<<x<<endl; cout<<z<<endl; x%=z/y+5; cout<<x<<endl;7.總結
第五課 基本數據類型
單詞
float 單精度浮點數
double 雙精度浮點數
1.認識C++中的基本數據類型
2.基本數據類型之整型
| 整數 | 4 | -2^31 ~ 2^31-1 | 10 | int i; |
| 長整型 | 8 | -2^63 ~ 2^62-1 | 19 | long long i; |
1.整型數據直接賦值
例如: int a = 100;2.表達式的結果取整數部分進行賦值
例如: int b = 5/2; b = 23.運算時要防止溢出的發生
int max = 2147483647; int min = -21474836484.sizeof方法
計算變量存儲空間的大小【問題描述】
分別定義short , int, long long類型的變量各一個,并依次輸出它們的存儲空間大小(單位∶字節)。
輸出格式:一行,三個整數,分別是三個變量的存儲空間大小,用一個空格隔開。
【樣例輸出】2 4 8
3.基本數據類型之浮點型
| 單精度浮點型 | 4 | -3.4e-38~3.4e+38 | 7 | float i; |
| 雙精度浮點型 | 8 | -1.7e-308~1.7e+308 | 15 | double i; |
1.浮點型數據表示形式
通常寫法∶3.14、314、0.1;
科學計數法︰1.25e2、1.25e-2 ;
其中1.25e2表示1.25乘以10的2次方;1.25e-2表示1.25乘以10的負2次方。
2.默認的浮點型數據是double型,如果需要表示float類型,需要加”f”或者”F”后綴。
例如: float f1 = 3.14f;
3.保留指定小數位數
#include<iomanip> cout << fixed <<setprecision(2)<< a ;fixed :按照一般小數形式輸出setprecision(2): 設置小數精度a: 變量名4.例題 求陰影部分的面積
【問題描述】
輸入正方形的邊長m和n(保證m<n),計算陰影部分(見圖)的面積。
【樣例輸入】10.0 20.0
【樣例輸出】陰影的面積為:150
5. 計算圓形的周長和面積
【問題描述】
編程實現輸入圓形的半徑值(double),輸出圓的周長和面積(π取3.14)
圓形周長公式:C=2πR圓形面積公式:S=πR2
【樣例輸入】
5.67
【樣例輸出】
圓的周長為:35.6076
圓的面積為:100.948
第六課 基本數據類型
1.基本數據類型之字符型
| 字符型 | 1 | 256個不同字符 | char i; |
1.基本數據類型之字符型注意:
1、字符常量只能用單引號括起來,不能用雙引號或其他括號。例如:‘A’,‘&’;
2、字符常量只能是單個字符,不能是字符串也不能為空。
錯誤寫法:‘ABC’ , "
3、字符可以是字符集中任意字符。但數字被定義為字符型之后就不能當作數字本身參與數值運算。如‘5’和5是不同的?!?’是字符常量,不能作為數值5參與運算。
ASCII需要記住的三個
‘a’ - 97
‘A’ - 65
‘0’ - 48
2.輸出字母對應的ASCII值
【問題描述】
輸入英文字母(輸入范圍為A-Z,a-z之間),輸出對應的ASCII值。
【樣例輸入1】A
【樣例輸出1】65
【樣例輸入2】z
【樣例輸出2】122
3.輸入數字字符,輸出對應的數字
【問題描述】
輸入數字字符(輸入范圍為‘0 - 9’之間),
輸出兩行,第一行是該字符對應的數字,第二行為該數字與1的和。
【樣例輸入】
3
【樣例輸出】
3
4
4.輸入大寫字母,輸出對應的小寫字母
【問題描述】
輸入大寫字母(輸入范圍為A-Z之間),輸出對應的小寫字母。
【樣例輸入1】A
【樣例輸出1】a
【樣例輸入2】Z
【樣例輸出2】z
5.計算圓形的周長和面積
【問題描述】
輸入圓形的半徑,輸出圓形的周長和面積。半徑的輸入范圍為:0<r ≤1000;
T取3.14159265 ;
【樣例輸入】3.2
【樣例輸出】20.106232.1699
2.基本數據類型之布爾型
1.基本數據類型之布爾型 bool
布爾型數據用來判斷真假,值只有兩個,true和false
A.布爾類型轉為整數類型
bool a = true; bool b = false; cout<< a<< “”<<b<<endl;true轉換為整型值為1,false轉換為整型值為0
B.整數類型轉布爾類型
C++中只有數字0可以隱式轉換為false,其它值都轉換為true
bool a = 10,b = 0,c = -20; cout << a<<" "<< b<<" "<<c<< endl; bool d = 10.1,e = 0.0; cout<<d <<""<<e<< endl; bool f = '0, g = 'a'; cout <<f<<""<<g <<endl;2.數據類型之間的隱式轉換
[char short ] -> int -> long long
float - > double
從小類型到大類型可自動完成轉換
練習:
3.數據類型之間的強制轉換
強制類型轉換有兩種格式:
(數據類型)變量
數據類型(變量或表達式)
4.數據類型轉換之溢出
不管是隱式類型轉換還是強制類型轉換,我們遵循由小到大的原則才能確保數據的安全。
如果大數據類型轉小數據類型會發生什么呢?
int a;
long long b = 53216547892;
a = ( int ) b;
cout <<a<< endl;
// 結果為:1676940340
5.練習一下
以下代碼運行的結果是; #include <iostream> using namespace std; int main(){int m = 11,n = 6;double b = 2;cout << m%n/b << endl;return 0; }6.練習計算球的體積
【問題描述】
對于半徑為r的球,其體積的計算公式為V=4/3Tr3,這里取T = 3.14?,F給定r,求V
輸入為一個不超過100的非負實數,即球半徑,類型為double型。
輸出一個實數,即球的體積,保留小數點后2位。【樣例輸入】4
【樣例輸出】267.95
第七課 運算符與判斷結構if
1.復合運算符號
int a = 1 , b = 2 , c = 3;
c = c + a; →c += a;
b = b - a; →b -= a;
a = a * c; →a *= c;
b = b / c; →b /= c;
2.關系運算符
“關系運算”實際上就是“比較運算”
< 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于3.關系表達式
解釋:由關系運算符和運算數組成的式子就是關系表達式
int a = 10; a < b int b = 20; a > b a >= b a != b a <= b a == b關系表達式的值(運算結果)是布爾類型
4.程序結構
程序結構有三種,分別是“順序”、“分支”、“循環”
5.if語句
語法規則 if(判斷條件){條件為真要做的事; }舉例:
//if語句 //聲明布爾型變量 bool is_sunny = true; //使用i子語句進行判斷 if(is_sunny == true){//條件為真做的事cout <<"去爬山"; }6.用if語句判斷變量是否等于100
int n = 100 ; if(n == 100){cout <<“變量n的值為100”; } // ==表示判斷 // =表示賦值7.if語句的使用—判斷整數的奇偶性
【問題描述】
編程實現輸入一個正整數,判斷其奇偶性,并輸出;
【樣例輸入】23
【樣例輸出】奇數
【樣例輸入】44
【樣例輸出】偶數
分析:如何判斷一個整數的奇偶性 偶數的特點->能被2整除->整數%2== 0 ; 奇數的特點->不能被2整除->整數%2!=0
8.if 語句的使用判斷是否及格
【問題描述】
輸入考試成績(成績為0~100之間的整數),如果成績大于或等于60算及格,及格則輸出YES,如果成績小于60算不及格,不及格則輸出NO。
【樣例輸入】62
【樣例輸出】YES
【樣例輸入】59
【樣例輸出】NO
9.計算蘋果總價
【問題描述】
超市蘋果打折促銷,總重量如果不超過5斤,單價3元/斤,如果超過5斤,超過部分打八折;輸入為所購買蘋果的重量,輸出為應付款的總額。
【樣例輸入1】10
【樣例輸出1】27
【樣例輸入2】10.2
【樣例輸出2】27.48
第八課 判斷結構else語句
1.if語句語法結構
if...else...語句 //語法結構
if(條件)條件為真時執行; } else{條件為假時執行; }2.if…else…語句的使用
A.【問題描述】
編程實現輸入一個整數,判斷其奇偶性,并輸出。
【樣例輸入】23
【樣例輸出】奇數
【樣例輸入】44
【樣例輸出】偶數
B.【問題描述】
編程實現輸入一個整數,輸出它的絕對值。
【樣例輸入】51
【樣例輸出】51
【樣例輸入】-34
【樣例輸出】34
3.if…else if…else 語句的使用
1.語法結構
if(條件){條件為真時執行; } else if(條件){條件為真時執行; } .... else {上面的條件都為假時執行; }2.騎車與走路(例題)
【問題描述】
在北大校園里沒有自行車上課辦事會很不方便。但實際上并非去辦任何事情都是騎車快,因為騎車需要找車、開鎖、停車、鎖車,這要耽誤一些時間。假設找到自行車開鎖并騎上自行車的時間為27秒,停車鎖車的時間為23秒。步行每秒行走1.2米,騎車每秒行走3.0米。請判斷走不同的距離去辦事,是騎車快還是走路快。
【輸入】輸入一行,包含一個整數,表示某次辦事要行走的距離,單位為米。
【輸出】輸出一行,如果騎車快輸出一行“Bike”;如果走路快輸出一行“Walk";如果一樣快輸出一行"All"。
【樣例輸入】120
【樣例輸出】Bike
3.判斷倍數(例題)
【問題描述】
輸入一個整數,如果是5的倍數,那么輸出倍數的值,否則輸出No。
【樣例輸入1】15
【樣例輸出1】3
【樣例輸入2】12
【樣例輸出2】No
第九課 if…else語句運用
1.分支嵌套
if(賬號正確){if(密碼正確){cout <<“登錄成功”;}else{cout<<“密碼錯誤”;} }else{cout <<“賬號錯誤”; }2.例題判斷賬號密碼
判斷賬號密碼
【問題描述】
首先設定賬號為123,密碼為456。編寫程序,實現賬號和密碼登錄,并輸出登錄結果。
【樣例輸入1】123 456
【樣例輸出1】登錄成功
【樣例輸入2】123 789
【樣例輸出2】密碼錯誤
3. 猜數游戲
【問題描述】
現有一數字35,用戶輸入一個數字與35作比較,如果4入的數字與35相等,則輸出猜對了;如果輸入的數字比35小則輸出猜小了;如果輸入的數字比35大則輸出猜大了。
輸入∶輸入一行,包含1個整數。
輸出:一行,輸出為字符串“猜對了”、“猜小了”和“猜大了”中的一個。
【樣例輸入】40
【樣例輸出】猜大了
4.計算郵資
【問題描述】
根據郵件的重量和用戶是否選擇加急計算郵費。計算規則:重量在1000克以內(包含1000克),基本費8元。超過1000克的部分,每500克加收超重費4元,不足500克部分按500克計算;如果用戶選擇加急,多收5元。
輸入∶輸入一行,包含整數和一個字符,以一個空格分開,分別表示重量(單位為克)和是否加急。如果字符是y,說明選擇加急;如果字符是n,說明不加急。
輸出:一行,包含一個整數,表示郵費。
【樣例輸入】1200 y
【樣例輸出】17
5.判斷能否被3,5整除
【問題描述】
給定一個整數,判斷它能否被3,5整除,并輸出以下信息:
1、能同時被3,5整除(直接輸出35,兩個數中間一個空格);
2、只能被其中一個數整除(輸出這個除數);
3、不能被任何數整除,輸出小寫字母n。
輸入:輸入一行,包含一個整數m。( -1,000,000 < m<_1,000,000 )
輸出:輸出一行,按照描述要求給出整數被3,5整除的情況。
【樣例輸入1】9
【樣例輸出1】3
【樣例輸入2】15
【樣例輸出2】3 5
第十課 邏輯運算符使用
1.認識邏輯運算
! 邏輯非 && 邏輯與 || 邏輯或2.邏輯表達式
解釋:含有邏輯運算符的表達式稱為邏輯表達式
! 邏輯非
&& 邏輯與
|| 邏輯或
邏輯表達式的結果只有兩種 (真)1(假)0
3.單獨解析:
A.邏輯非:!
! :非,代表相反的意思
!true →false !false →true !(4 > 2) →false !(9>11) →trueB.邏輯與:&&
&&:與,代表同時的意思 9>5 && 5>3 →true 9>5 && 5<3 →false 9<5 && 5<3 →false
總結:有一個為假結果就為假,兩個都為真結果才為真
B-1.三角形判斷
【問題描述】
給定三個正整數,分別表示三條線段的長度,判斷這三條線段能否構成一個三角形(任意兩條邊之和大于第三邊)。輸出格式:如果能構成三角形,則輸出Yes,否則輸出No。
【樣例輸入】345
【樣例輸出】Yes
C.邏輯與:||
||∶或,代表其中一個的意思 7> 4 || 3 >1 →true 4>2 || 3 >5 →true 6 > 8 || 7 >9 →false
總結:有一個為真結果就為真,兩個都為假結果才為假
4.例題:
1:判斷是否為一門課不及格
【問題描述】
給出一名學生的語文和數學成績,判斷他是否恰好有一門課不及格(成績小于60分)。
輸入:一行,包含兩個在0到100之間的整數,分別是該生的語文成績和數學成績。
輸出:若該生恰好有一門課不及格,
輸出1;否則輸出0。
【樣例輸入】50 80
【樣例輸出】1
2:邏輯運算符優先級
3:用邏輯表達式判斷是否為閏年
【問題描述】
輸入一個年份,判斷該年是否為閏年。若為閏年則輸出Yes ,不是閏年則輸出No。
提示∶閏年的判斷條件有兩個,只要滿足其中一個即為閏年。
1)能被400整除
2)不能被100整除,但能被4整除
【樣例輸入】
2016
【樣例輸出】
Yes
4:點和正方形的關系
【問題描述】
有個一正方形,四個角的坐標(x,y)分別是( 1,-1) ,( 1,1) ,( -1,-1),( -1,1),×是橫軸,y是縱軸。寫一個程序,判斷一個給定的點是否在這個正方形內(包括正方形邊界)。
【輸入】輸入一行,包括兩個整數x, y,以一個空格分開,表示坐標( x , y )。
【輸出】輸出一行,如果點在正方形內,則輸出yes,否則輸出no。
【輸入樣例】11
【輸出樣例】yes
總結
以上是生活随笔為你收集整理的NOIP(C++)信息学奥赛课程--持续更新的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息奥赛c语言,信息学奥赛语言C语言的优
- 下一篇: C++ 实现trim函数