专栏文章

25秋季9月14日 第一次课 常用函数(max,min,abs,sqrt,ceil,floor,round)

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minwhgwn
此快照首次捕获于
2025/12/02 09:29
3 个月前
此快照最后确认于
2025/12/02 09:29
3 个月前
查看原文

第一题:B2004

新函数:

CPP
stew(x):占x个字符宽度

思路:

先创建一个两个整数函数a,b和c。在输入a,b,c。最后输出,先用setw(8)来占8个字符宽度,然后输出空格在输出a,再用setw(8)来占8个字符宽度,然后输出空格输出b,再用setw(8)来占8个字符宽度,然后输出空格输出c。

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main(){
	cin>>a>>b>>c;
	cout<<setw(8)<<a<<" "<<setw(8)<<b<<" "<<setw(8)<<c;
	return 0;
} 

第二题:B2004

新函数:

CPP
floor():浮点向下取整

思路:

代码中的公式:
CPP
a=k*b+r;
r=a-k*b;
先定两个小数变量a,b,在输入a和b,再定一个整数函数x=a/b,最后输出a-floor(a/b)*b;

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
double a,b;
int main(){
	cin>>a>>b;
	int x=a/b;
	cout<<a-floor(a/b)*b;
	return 0;
}

第三题:B2029

新函数:

CPP
ceil():浮点向上取整

思路:

代码中的公式:
CPP
圆柱的体积公式:V=3.14*a*a*b;
先定义两个整数函数:h,r。在输入h,r;再来两个double函数:double s=3.14rr*h; double t=20000/s;最后输出ceil(t);

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int h,r;
int main(){
	cin>>h>>r;
	double s=3.14*r*r*h;
	double t=20000/s;
	cout<<ceil(t);
	return 0;
} 

第四题:P5726

新函数:

CPP
max(a,b):取a和b的最大值
min(a,b):取a和b的最小值

思路:

先定义一个整数变量和一个二维数组,然后输入n和a[i]再来三个变量int maxn=-1,minn=11,sum=0;再来一个循环:
CPP
for(int i=1;i<=n;i++){
		sum+=a[i];
		maxn=max(a[i],maxn);
		minn=min(a[i],minn);
}
最后保留两位小数输出:
CPP
cout<<fixed<<setprecision(2)<<double(sum-minn-maxn)/(n-2);
CPP
cout<<fixed<<setprecision(2)<<(sum-minn-maxn)*1.0/(n-2);

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int n,a[1005];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int maxn=-1,minn=11;
	int sum=0;
	for(int i=1;i<=n;i++){
		sum+=a[i];
		maxn=max(a[i],maxn);
		minn=min(a[i],minn);
	}
	cout<<fixed<<setprecision(2)<<double(sum-minn-maxn)/(n-2);
	return 0;
}

第四题:B2066

新函数:

CPP
sqrt():开根号函数

思路:

公式:
CPP
总时间=开船时间+求(l+0.5)*人数
开船时间=路程/50*2(来回)
两点之间路程公式(x1,x1)(y1,y2)=sqrt((x1-x2)*(x1-x2)+(y1,y2)*(y1-y2))
路程(0,0)->(x,y)=sqrt(x*x+y*y)
一次救援时间=sqrt(x*x+y*y)/50*2+1.5*人数
先定一个整数变量和一个浮点收变量:int n;double sum=0;在输入n,然后来个for循环:
CPP
for(int i=1;i<=n;i++){
	double x,y;
  int z;
	cin>>x>>y>>z;	
  sum+=sqrt(x*x+y*y)/50*2+1.5*z;
}
然后输出:cout<<(int)ceil(sum);

代码:

CPP
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
	cin>>n;
	double sum=0;
	for(int i=1;i<=n;i++){
		double x,y;
		int z;
		cin>>x>>y>>z;	
		sum+=sqrt(x*x+y*y)/50*2+1.5*z;
	}
	cout<<(int)ceil(sum);
	return 0;
}

第四题:P1639

新函数:

CPP
abs():绝对值函数
swap():交换函数
round():浮点四舍五入利用整数取整是向零取整

思路:

先定四个变量:a,b,x,y; 再来两个if判断,判断两种情况,最后输出:cout<<min(abs(a-b),abs(a-x)+abs(y-b))

代码:

CPP
using namespace std;
int a,b,x,y;
int main(){
	cin>>a>>b>>x>>y;
	if(a>b){
		swap(a,b);
	}
	if(x>y){
		swap(x,y);
	}
	cout<<min(abs(a-b),abs(a-x)+abs(y-b));
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...