1. 計算郵資
【問題描述】
根據郵件的重量和用戶是否選擇加急計算郵費。計算規則:重量在1000克以內 (包含1000克),基本費8元。超過1000克的部分,每500克加收超重費4元,不足500克部分按500克計算;如果用戶選擇加急,多收5元。
輸入:輸入一行,包含整數和一個字符,以一個空格分開,分別表示重量(單位為克)和是否加急。如果字符是y,說明選擇加急;如果字符是n,說明不加急。
輸出:一行,包含一個整數,表示郵費。
【樣例輸入】
1200 y
【樣例輸出】
17
#include <iostream> using namespace std; int main(){ int m, money; char n; cin >> m >> n; if(m<=1000){ money = 8; }else{ if(m%500==0){ money = 8 + (m-1000)/500*4; }else{ money = 8 + (m-1000)/500*4+4; } } if(n=='y'){ money += 5; } cout << money <<endl; return 0; }
2. 判斷能否被3,5,7整除
【問題描述】
給定一個整數,判斷它能否被3,5,7整除,並輸出以下信息:
1、能同時被3,5,7整除(直接輸出3 5 7,每個數中間一個空格);
2、只能被其中兩個數整除(輸出兩個數,小的在前,大的在后。例如:3 5或者 3 7或者5 7,中間用空格分隔);
3、只能被其中一個數整除(輸出這個除數);
4、不能被任何數整除,輸出小寫字符‘n’,不包括單引號。
輸入:輸入一行,包括一個整數。
輸出:輸出一行,按照描述要求給出整數被3,5,7整除的情況。
【樣例輸入】
105
【樣例輸出】
3 5 7
#include <iostream> using namespace std; int main(){ int n, i=0; cin >> n; if(n%3==0){ cout << 3 << " "; i++; } if(n%5==0){ cout << 5 << " "; i++; } if(n%7==0){ cout << 7 << endl; i++; } if(i==0){ cout << "n" << endl; } return 0; }
1. 分段函數
【問題描述】
編寫程序,計算下列分段函數y=f(x)的值。
y=-x+2.5; 0 <= x < 5
y=2-1.5(x-3)(x-3); 5 <= x < 10
y=x/2-1.5; 10 <= x < 20
輸入:一個浮點數N,0 <= N < 20
輸出:輸出N對應的分段函數值:f(N)。結果保留到小數點后三位。
【樣例輸入】
1.0
【樣例輸出】
1.500
#include <iostream> #include <iomanip> using namespace std; int main(){ double x, y; cin >> x; if(x>=0&&x<5){ y = -x + 2.5; }else if(x<10){ y = 2-1.5*(x-3)*(x-3); }else if(x<20){ y = x/2-1.5; } cout << fixed << setprecision(3) << y << endl; return 0; }
2. 小玉家的電費
【問題描述】
夏天到了,各家各戶的用電量都增加了許多,相應的電費也交的更多了。小玉家今天收到了一份電費通知單。小玉看到上面寫:據閩價電[2006]27號規定,月用電量在150千瓦時及以下部分按每千瓦時0.4463元執行,月用電量在151~400千瓦時的部分按每千瓦時0.4663元執行,月用電量在401千瓦時及以上部分按每千瓦時0.5663元執行;小玉想自己驗證一下,電費通知單上應交電費的數目到底是否正確呢。請編寫一個程序,已知用電總計,根據電價規定,計算出應交的電費應該是多少。
輸入:一個整數,表示用電總計(單位以千瓦時計),不超過10000
輸出:輸出一個數,保留到小數點后1位(單位以元計,保留到小數點后1位)。
【樣例輸入】
267
【樣例輸出】
121.5
#include <iostream> #include <iomanip> using namespace std; int main(){ int n; double money; cin >> n; if(n<=150){ money = n*0.4463; }else if(n<=400){ money = 150*0.4463+(n-150)*0.4663; }else{ money = 150*0.4463+250*0.4663+(n-400)*0.5663; } cout << fixed << setprecision(1) << money << endl; return 0; }
3. 求一元二次方程的根
【問題描述】
利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等於0。
輸入:一行,包含三個浮點數a, b, c(它們之間以一個空格分開),分別表示方程ax2 + bx + c =0的系數。
輸出:輸出一行,表示方程的解。
若b2 = 4 * a * c,則兩個實根相等,則輸出形式為:x1=x2=...。
若b2 > 4 * a * c,則兩個實根不等,則輸出形式為:x1=...;x2 = ...,其中x1>x2。
若b2 < 4 * a * c,則有兩個虛根,則輸出:x1=實部+虛部i; x2=實部-虛部i,即x1的虛部系數大於等於x2的虛部系數,實部為0時不可省略。實部 = -b / (2*a), 虛部 = sqrt(4*a*c-b*b) / (2*a)
所有實數部分要求精確到小數點后5位,數字、符號之間沒有空格。
【樣例輸入】
1.0 2.0 8.0
【樣例輸出】
x1=-1.00000+2.64575i; x2=-1.00000-2.64575i
#include <cstdio> #include <cmath> #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main(){ double a,b,c,x1,x2; cin >> a >> b >> c; if(b*b==4*a*c){ x1=x2=-b/(2*a); cout<<fixed<<setprecision(5)<<"x1=x2="<<x1<<endl; }else if(b*b>4*a*c){ x1 = (-b + sqrt(b*b-4*a*c))/(2*a); x2 = (-b - sqrt(b*b-4*a*c))/(2*a); cout<<fixed<<setprecision(5)<<"x1="<<x1<<";"<<"x2="<<x2<<endl; }else{ if(-b/(2*a)==0){ x1=-b/(2*a)+sqrt(4*a*c-b*b)/(2*a); x2=-b/(2*a)-sqrt(4*a*c-b*b)/(2*a); cout<<fixed<<setprecision(5)<<"x1="<<b/(2*a)<<"+"<<sqrt(4*a*c-b*b)/(2*a)<<"i"<<";"; cout<<fixed<<setprecision(5)<<"x2="<<b/(2*a)<<"-"<<sqrt(4*a*c-b*b)/(2*a)<<"i"<<endl; }else{ x1=-b/(2*a)+sqrt(4*a*c-b*b)/(2*a); x2=-b/(2*a)-sqrt(4*a*c-b*b)/(2*a); cout<<fixed<<setprecision(5)<<"x1="<<-b/(2*a)<<"+"<<sqrt(4*a*c-b*b)/(2*a)<<"i"<<";"; cout<<fixed<<setprecision(5)<<"x2="<<-b/(2*a)<<"-"<<sqrt(4*a*c-b*b)/(2*a)<<"i"<<endl; } } return 0; }