7-1 A + B ? 简单输入输出
1 2 3 4 5 6 7 8 9 10 11 12 #include <bits/stdc++.h> using namespace std; int main(){ int n,a,b; cin>>n; for(int i=1;i<=n;i++){ cin>>a>>b; cout<<a+b<<endl; } return 0; }
7-2 鸡兔同笼问题 典型数学解方程问题
x+y=a
2x+4y=b
y=(b-2a)/2 , x=a-(b-2a)/2;
1 2 3 4 5 6 7 8 9 10 #include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; cout<<"The number of hens is "<<a-(b-2*a)/2<<"."<<endl; cout<<"The number of rabbits is "<<(b-2*a)/2<<"."<<endl; return 0; }
7-3 交换两个字符串 可以用swap交换,也可以改变输出顺序
1 2 3 4 5 6 7 8 9 #include <bits/stdc++.h> using namespace std; int main(){ string a,b; cin>>a>>b; swap(a,b); cout<<a<<endl<<b<<endl; return 0; }
1 2 3 4 5 6 7 8 #include <bits/stdc++.h> using namespace std; int main(){ string a,b; cin>>a>>b; cout<<b<<endl<<a<<endl; return 0; }
7-4 比较10个字符串的大小,按从小到大输出 可以直接用C++自带的sort函数,也可以自己写冒泡排序等排序算法
1 2 3 4 5 6 7 8 sort函数 头文件<algorithm> 升序 sort(首元素位置,末元素的下一位置); 降序 sort(首元素位置,末元素的下一位置,greater<int>{}); int arr[10];//下标0-9存数 sort(arr,arr+10); sort(arr,arr+10,greater<int>{});
1 2 3 4 5 6 7 8 9 #include <bits/stdc++.h> using namespace std; int main(){ string str[20]; for(int i=1;i<=10;i++) cin>>str[i]; sort(str+1,str+1+10); for(int i=1;i<=10;i++) cout<<str[i]<<endl; return 0; }
7-5 删除不喜欢的数字 简单输入输出,除了不喜欢的数字都输出
1 2 3 4 5 6 7 8 9 10 11 #include <bits/stdc++.h> using namespace std; int main(){ int n,x,a; cin>>n>>x; for(int i=1;i<=n;i++){ cin>>a; if(a!=x) cout<<a<<" "; } return 0; }
7-6 兰那罗们的游戏2 从1暴力数k个满足要求的数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <bits/stdc++.h> using namespace std; int main(){ int n,k,j; cin>>n; for(int i=1;i<=n;i++){ cin>>k; for(j=1;;j++){ if(j%3!=0 && j%10!=3) k--; if(k==0) break; } cout<<j<<endl; } return 0; }
7-7 打印图形 找每一行的规律,先要打印空格,再打印字母,打印字母可以用char(‘A’+数字)来实现(ASCII码+强制转换)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; for(int i=n;i>=1;i--){ //先输出空格 for(int j=1;j<=n-i;j++) cout<<" "; //倒序输出字母 for(int j=i;j>=1;j--) cout<<char('A'+j-1); //顺序输出字母 for(int j=1;j<=i;j++) cout<<char('A'+j-1); cout<<endl; } return 0; }
7-8 谁能进图书馆 一道模拟题,需要认真读题目,列举每一种情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include <bits/stdc++.h> using namespace std; int main(){ int a,b,c,d; cin>>a>>b>>c>>d; if(c>=b&&d<a){//第一个可陪同第二个 cout<<c<<"-Y "<<d<<"-Y"<<endl; cout<<"qing 1 zhao gu hao 2"<<endl; } else if(d>=b&&c<a){//第二个可陪同第一个 cout<<c<<"-Y "<<d<<"-Y"<<endl; cout<<"qing 2 zhao gu hao 1"<<endl; } else if(c>=a&&d>=a){//都大于等于禁入年龄线 cout<<c<<"-Y "<<d<<"-Y"<<endl; cout<<"huan ying ru guan"<<endl; } else if(c<a&&d<a){//都小于禁入年龄线 cout<<c<<"-N "<<d<<"-N"<<endl; cout<<"zhang da zai lai ba"<<endl; } else if(c>=a&&d<a){//第一人可进 cout<<c<<"-Y "<<d<<"-N"<<endl; cout<<"1: huan ying ru guan"<<endl; } else if(d>=a&&c<a){//第二人可进 cout<<c<<"-N "<<d<<"-Y"<<endl; cout<<"2: huan ying ru guan"<<endl; } return 0; }
7-9 帮助色盲 一道模拟题,需要认真读题目,列举每一种情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; if(a==0){ //红灯,停止 if(b==0){//前方无人,需提示 cout<<"biii"<<endl<<"stop"<<endl; } else{//前方有人,不需提示 cout<<"-"<<endl<<"stop"<<endl; } } else if(a==1){//绿灯,前行 if(b==0){//前方无人,需提示 cout<<"dudu"<<endl<<"move"<<endl; } else{//前方有人,不需提示 cout<<"-"<<endl<<"move"<<endl; } } else{//黄灯,不需提示,停止 cout<<"-"<<endl<<"stop"<<endl; } return 0; }
7-10 string 用字符串的库函数str.find定位每一次出现的位置,两次模式串的出现可能是有重叠的,比如说ababa中aba出现的是2次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <bits/stdc++.h> using namespace std; int main(){ int n; string str,s; cin>>n>>str; for(int i=1;i<=n;i++){ cin>>s; int cnt=0,p=str.find(s); //先用find函数查找第一个串的位置 while(p!=-1){ //如果找到,找下一个 cnt++; p=str.find(s,p+1); //下一次查找要从下一个字母开始,否则会重复计数 } cout<<cnt<<endl; } return 0; }