【题库】—— 买铅笔 & 三角形分类 & 小玉家的电费 & 三角函数

一、NOIP2016 普及组 买铅笔

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long c,n,a,b,sum,min;//一定注意数据类型,如果改成int,亲测洛谷给分52
	cin>>n;
	for(int i=0;i<3;i++)
	{	
	    cin>>a>>b;
        c=ceil(1.0*n/a);//向上取整,也可以直接判断余数,余数大于零,+1即可
		sum=c*b;	
		if(sum<min || min==0)
		  {
		  min=sum;
		  }
	}
	cout<<min;
	return 0;
}

二、【深基3.习8】三角形分类

#include<bits/stdc++.h>
using namespace std;	
int a,b,c;
int main()
{
	scanf("%d %d %d",&a,&b,&c);
	if(a+b>c && a+c>b && b+c>a)
	{
		if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
		{
			printf("Right triangle\n");
		}
		else if(a*a+b*b<c*c || a*a+c*c<b*b || b*b+c*c<a*a)
		{
			printf("Obtuse triangle\n");
		}
		else if(a*a+b*b>c*c || a*a+c*c>b*b || b*b+c*c>a*a)
		{
			printf("Acute triangle\n");
		}
		if(a==b || a==c || b==c)
		{
			printf("Isosceles triangle\n");
		}
		if(a==b && b==c)
		{
			printf("Equilateral triangle\n");
		}
	}
	else
	printf("Not triangle\n");
	return 0;
}

1.两条较短边的平方和大于最长边的平方,是锐角三角形,

2.两条较短边的平方和小于最长边的平方,是钝角三角形。

3.两条边短边的平方和等于最长边的平方,是直角三角形

三、小玉家的电费

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	double sum;
	cin>>n;
	if(n<150)
	{
		sum=n*0.4463;
	}
	if(n>150 && n<400)
	{
		sum=150*0.4463+(n-150)*0.4663;
	}
	if(n>400)
	{
		sum=150*0.4463+250*0.4663+(n-400)*0.5663;
	}
	printf("%.1f",sum);
}

四、

#include<bits/stdc++.h>
using namespace std;
int ans(int min,int max) //用于找出最大公约数
{
    if(min%max==0) 
	return max;
    return ans(max,min%max);
}

int main() 
{ 
    int a=0,b=0,c=0,min=0,max=0;
    cin>>a>>b>>c;
    max=(c>(a>b?a:b)?c:(a>b?a:b));//找出abc中的最大值
    min=(c<(a<b?a:b)?c:(a<b?a:b));//同理,找最小值
    printf("%d/%d",min/ans(min,max),max/ans(min,max));
    return 0;
}

对于:

a=((s[1]-48)*1+(s[2]-48)*2+(s[3]-48)*3+(s[4]-48)*4+(s[5]-48)*5+(s[6]-48)*6+(s[7]-48)*7+(s[8]-48)*8+(s[9]-48)*9)%11;

由于在C++中,数字字符(0-9)是由ASCII编码定义的。当读取一个字符时,如果是数字,就会返回对应的ASCII值

数字0到9对应的ASCII值分别是

  • 0:48
  • 1:49
  • 2:50
  • 3:51
  • 4:52
  • 5:53
  • 6:54
  • 7:55
  • 8:56
  • 9:57
  • 所以减去48才是需要的值
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值