1283. 【数组测试题8】Kqp的礼物(string)

46 篇文章 0 订阅
27 篇文章 0 订阅
题目描述

mx妹妹要过生日了!作为mx妹妹的好同(peng)学(you),kqp他要送给mx妹妹一样特别的礼物,譬如……项链!
项链由前n种大写字母组成,每种字母都有不同的爱心值。
Mx妹妹已经知道了:
1、组成整个项链的所有字母串;
2、整个项链的爱心值之和m,
3、以及其中的n-1种字母所带有的爱心值a;
她想知道剩下那种字母的爱心值是多少。

输入

第一行只有一个整数n;
第二行一个字母串s表示kqp的项链,长度<=1000;
第2+1~2+n-1行,每行有个大写母c和一个整数a,之前用个空格隔开,表示字母c所带的爱心值为a;
最后一行只有一个整数表示整个项链的爱心值之和m。

输出

Mx妹妹想了解剩下那个字母c带有的爱心值中多少(保留2位小数)。

样例输入 
8
CEAAGCGDHFB
A 5
C 35
D 18
E 42
F 15
G 17
H 21
661
样例输出 
451.00
数据范围限制

40%的数据,项链长度<=10,并且没有重复字母;
80%的数据,项链长度<=255,有重复字母;
100%的数据,st长度<=1000,有重复字母,n<=26。

实现代码:

#include<bits/stdc++.h>//头文件 
using namespace std;
int n,x[30],s;//分别代表字母总数,每个字母的爱心值(数值),计数器 
double m;//项链总爱心和 
int main()
{
	char a[1000],y[300];//分别表示项链信息,每个字母的爱心值(字母)
	cin>>n>>a;//输入项链信息 
	int g=strlen(a);//获得项链长度 
	for(int i=1;i<n;i++)//循环每个字母 
	{
		cin>>y[i]>>x[i];//输入每个字母的爱心值 
		for(int j=0;j<g;j++)//循环项链里面的这个字母 
		{
			if(a[j]==y[i])//如果这个字母=输入字母 
			{
				s+=x[i];//将计数器增加输入字母的爱心值
				a[j]='0';//将这个字母排除 
			}
		}
	}
	cin>>m;//输入爱心值之和
	m-=s;//减去已知的字母总和 
	int u=0;//计算未知字母的个数 
	for(int i=0;i<g;i++)if(a[i]!='0')u++;//计算未知字母的个数 
	m/=u;//计算每个字母的平均值 
	printf("%.2lf",m);//输出未知字母的值 
	return 0; 
}

运行结果:

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值