c++基础训练(六)
嘻嘻,五一五天假,没拿电脑回去,划水划水划水。。。。。
(1)BoBo买了一箱酸奶,里面有n盒未打开的酸奶,KiKi喜欢喝酸奶,第一时间发现了酸奶。KiKi每h分钟能喝光一盒酸奶,并且KiKi在喝光一盒酸奶之前不会喝另一个,那么经过m分钟后还有多少盒未打开的酸奶?
输入:多组输入,每组输入仅一行,包括n,h和m(均为整数)。输入数据保证m <= n * h。例子:8 5 16
输出:针对每组输入,输出也仅一行,剩下的未打开的酸奶盒数。例子:4
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,pre,zong=0;
cin>>n>>pre>>zong;
int c=zong/pre;
if(zong%pre==0){
cout<<(n-c)<<endl;
}
else{
cout<<(n-c-1)<<endl;
}
return 0;
}
这个题目是有一点小思考在里面的,因为我们几分钟和一盒子奶,比如例子里的5分钟一盒,但是我们喝了16分钟,三盒还要多一分钟,我们是又拆开一盒子的,所以我们实际拆开四盒,剩下8-4盒。所以这个题目就有两种情况,一种是正好是倍数关系,一种是超出一点,这时我们就要多拆开一盒。
(2)输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围-231~231-1)。
输入:一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。例子:0x12 05
输出:一行,a+b的十进制结果。输出:23
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c=0;
cin>>hex>>a;
cin>>oct>>b;
c=a+b;
cout<<dec<<c<<endl;
return 0;
}
就是进制之间的转换喽,在前两天就做过类似的题目,原理啥的也都说到过。
(3)实现字母的大小写转换。多组输入输出。
输入:多组输入,每一行输入大写字母。
A B输出:针对每组输入输出对应的小写字母。
a b
#include<bits/stdc++.h>
using namespace std;
int main(){
char a;
while (cin>>a){
a+=32;
cout<<a<<endl;
}
return 0;
}
是个就是通过ascll码进行加减来实现大小写的转换,大写的加32变成对应的小写的。