intmain(){ cin>>a>>b; if(a > b){ cout<<a<<" is bigger than "<<b<<'\n'; } elseif(a == b){ cout<<a<<" is equal to "<<b<<'\n'; } else{ cout<<a<<" is smaller than "<<b<<'\n'; } }
intmain(){ cin>>a>>b; if(a > b){ cout<<a<<" is bigger than "<<b<<'\n'; } elseif(a == b){ cout<<a<<" is equal to "<<b<<'\n'; } else{ cout<<a<<" is smaller than "<<b<<'\n'; } }
以中文翻譯,else if大概就是”否則,如果”的意思吧!
當輸入為 5 7 時,程式首先判斷第一個條件:
1
如果 a > b ......
此時,$a$ 是 5,$b$ 是 7,5 並沒有大於 7,因此落入下一個區塊。
第二個區塊為:
1 2 3
else if(a == b){ cout<<a<<" is equal to "<<b<<'\n'; }
intmain(){ cin>>a>>b; if(a > b){ cout<<a<<" is bigger than "<<b<<'\n'; } if(a == b){ cout<<a<<" is equal to "<<b<<'\n'; } else{ cout<<a<<" is smaller than "<<b<<'\n'; } }
// TOJ 95 #include<bits/stdc++.h> usingnamespacestd;
intmain(){ int a,b; cin>>a>>b; if(a==1){ if(b>=8) cout<<"PASS!\n"; elsecout<<"FAIL! You see see you!\n"; } elseif(a==2){ if(b>=9) cout<<"PASS!\n"; elsecout<<"FAIL! You see see you!\n"; } else{ if(b==10) cout<<"PASS!\n"; elsecout<<"FAIL! You see see you!\n"; } return0; }
intmain(){ cin>>a1>>b1>>c1>>a2>>b2>>c2>>n; double x = 1.0 * (2 * a2 * n + b2 - b1) / (2 * (a1 + a2)); // 找到二次函數極值發生的位置,與端點取max int ans = -100000000;
int p = x, l = n-p; if(0 <= p && p <= n){ int ans1 = a1 * p * p + b1 * p + c1 + a2 * l * l + b2 * l + c2; if(ans1 > ans) ans = ans1; // ans = max(ans, ans1) }
// 微分後答案不一定是整數,因此要試兩個點 p++, l--; if(0 <= p && p <= n){ int ans1 = a1 * p * p + b1 * p + c1 + a2 * l * l + b2 * l + c2; if(ans1 > ans) ans = ans1; } int ans0 = a2 * n * n + b2 * n + c2 + c1; // 左端點 int ansn = a1 * n * n + b1 * n + c1 + c2; // 右端點 if(ans0 > ans) ans = ans0; // ans = max(ans, ans0) if(ansn > ans) ans = ansn; // ans = max(ans, ansn) cout<<ans<<'\n'; }
int a = 5, b = 3; cout << fixed << setprecision(10) << 1.0*a/b << '\n'; cout << 3.0*a*b/1.24*0.445 << '\n';
結果為:
1 2
1.6666666667 16.1491935484
模運算
若我們要取得 a 除以 b 的餘數,可以這樣寫:
1 2 3
int a, b; cin>> a >> b; cout<< a - a/b*b << '\n';
因 $a,b$ 都是整數,因此 $a/b$ 僅會保留整數部分,根據除法原理,$a / b = c … d$ 可改寫為 $a = b * c + d$,其中 $0 \le d < b$。因此,$c$ 就是 $a/b$ 的整數部分,將 $a$ 減去 $b*c$ 後,就得到餘數 $d$ 了!
其實,在C++裡,有個幫你寫好的餘數功能:
1 2 3
int a, b; cin >> a >> b; cout << a % b << '\n';
% 的優先次序與乘除法相同,因此,若要取 a+b 除以 c 的餘數,必須這樣寫:
1 2 3
int a, b, c; cin >> a >> b >> c; cout << (a + b) % c << '\n';
運算後指派
1 2 3 4 5
int a = 5, b = 4, c = 0; a = a + 1; // 計算 a+1 後 指派給 a,現在 a 是 6 b = a - 1; // 計算 a-1 後 指派給 b,現在 b 是 5 c = a * b; // 計算 a*b 後 指派給c,現在 c 是 30 cout<<a<<b<<c<<'\n';
C++ 中,針對 $a = a + 5$ 之類的操作,有著更簡潔的寫法:
1 2 3 4
a += 5; // a = a + 5 b -= 2; // b = b - 2 c *= 3; // c = c * 3 d /= 45; // d = d / 45