濮阳百度推广百度上海推广优化公司
注:牛客网允许使用万能头文件#include<bits/stdc++.h>
1、求类型长度——sizeof()函数
2、将浮点数四舍五入——round()函数——前面如果加上static_cast会更安全一些
在C语言中可以使用printf(“.0lf”)
3、求和——直接输出,没什么好说的
4、两数最大和——max()函数
5、和差积商模——也没什么好说的,可以用max函数判断一下
6、交换两数值——swap()函数
7、三目运算符——?——(如果式子成立)?(输出):(如果式子不成立输出这个)
8、折扣问题——上代码
if(price>=100&&price<500) cost=price*0.9;else if(price>=500&&price<2000) cost=price*0.8;else if(price>=2000&&price<5000) cost=price*0.7;else if(price>=5000) cost=price*0.6;cout<<cost;
9、身高体重——简单逻辑判断
double tmp=weight/(height*height);if(tmp<18.5) cout<<"偏瘦";else if(tmp>18.5&&tmp<=20.9) cout<<"苗条";else if(tmp>20.9&&tmp<=24.9) cout<<"适中";else if(tmp>24.9) cout<<"偏胖";
10、一样
if(score<0||score>100) cout<<"成绩不合法";else if(score>90&&score<100) cout<<"优秀";else if(score>80&&score<89) cout<<"良";else if(score>70&&score<79) cout<<"中";else if(score>60&&score<69) cout<<"及格";else if(score>0&&score<59) cout<<"差";
11、一样,但可以练习一下Switch,case,break
if(month>=1&&month<=12){switch(month){case 12:case 1:case 2:cout<<"冬季";break;case 3:case 4:case 5:cout<<"春季";break;case 6:case 7:case 8:cout<<"夏季";break;case 9:case 10:case 11:cout<<"秋季";break;}}else {cout<<"不合法";
12、注意边界就行了
for(int i=1;i<=n;i++){if(i%2==0){sum+=i;}}
13、递归,或者直接for
// write your code here......long long int tmp=1;for(int i=1;i<=n;i++){tmp*=i;}cout << tmp << endl;
14、分解,然后判断。依稀记得这是当年难住我的一道题
for(int i=100;i<=999;i++){int bai=i/100;int shi=i%100/10;int ge=i%10;if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i){cout<<i<<endl;}}
15、不难,但是相当烦的一道题
int n;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cout<<j<<" * "<<i<<" = "<<j*i<<" ";}cout<<endl;}return 0;
16、9到9999999999的和——不难,但要注意int的范围
int i=10;long long int tmp=0;long long int n=9;while(i--){tmp+=n;n=n*10+9;//cout<<n<<endl;}cout<<tmp;return 0;
17、只需要注意输出,使用printf比较方便
if(n>1){for(int i=2;i<=n;i++){h/=2;sum+=h*2;}printf("%.1f ",sum);printf("%.1f",h/2);}else if(n==1){high=h/2.0;printf("%.1f ",h);printf("%.1f",high);}return 0;
18、质数只有自己本身和1为因数。所以只需要判断到根号n就行。但是不能再循环中写i<sqrt(n),这样会导致循环无法进行
#include <iostream>
#include <cmath>
using namespace std;int main() {int n;cin >> n;if (n <= 1) {cout << "不是质数";} else if (n == 2) {cout << "是质数";} else if (n % 2 == 0) {cout << "不是质数";} else {bool is_prime = true;// 优化循环条件:使用i*i避免浮点误差for (int i = 3; i*i <= n; i += 2) {if (n % i == 0) {is_prime = false;break;}}cout << (is_prime ? "是质数" : "不是质数");}return 0;
}
19、虽然是数组题,但是可以阶级复习一下vector
vector<int>v;for (int i = 0; i < 6; i++) {int n;cin >> n;v.push_back(n);}sort(v.begin(),v.end());cout << v[0] << " ";cout << v[v.size()-1];
20、同理(牛客这种格式题真的好烦)
vector<int>v;for(int i=0;i<6;i++){int n;cin>>n;v.push_back(n);}cout<<"[";for(int i=0;i<=4;i++){cout<<v[i]<<", ";}cout<<v[5];cout<<"]";cout<<endl;cout<<"[";for(int i=5;i>=1;i--){cout<<v[i]<<", ";}cout<<v[0];cout<<"]";
21、冒泡排序,不难,但是容易忘
#include <iostream>
using namespace std;void Bubble(int arr[], int len)
{for (int i = 0; i < len - 1; i++) { //轮数for (int j = 0; j < len - i - 1; j++) { //每一轮的操作if (arr[j] > arr[j + 1]) {swap(arr[j+1], arr[j]);}}}
}int main() {int arr[6] = { 0 };int len = sizeof(arr) / sizeof(int);for (int i = 0; i < len; i++) {cin >> arr[i];}// write your code here......Bubble(arr,len);for (int i = 0; i < len; i++) {cout << arr[i] << " ";}return 0;
}
21、选择排序
for(int i=0;i<len-1;i++){int tmp=i;for(int j=i+1;j<len;j++){if(arr[j]<arr[tmp]){tmp=j;}}swap(arr[tmp],arr[i]);}for(int i=0;i<len;i++){cout<<arr[i]<<" ";}
22、二维数组求和
int arr[4][3] = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};// write your code here......;int sum = 0;for(int i = 0; i < 4; i++) {for(int j = 0; j < 3; j++) {sum += arr[i][j];}}cout << sum << endl;