牛客小白月赛61 B.柜台结账(模拟+字符串)
admin
2024-01-30 22:24:32

牛客小白月赛61 B.柜台结账(模拟+字符串)

题面链接:柜台结账

题目分析:

这是一道if−elseif-elseif−else语句的基础题目,由于数据量很大达到了1010510^{10^{5}}10105,换成101010进制会有10510^{5}105位,而我们现阶段的数据类型最多也只能存下几十位大的数,所以这题我们得用别的方法存下来,而什么数据类型能存下10510^5105的数据呢,显然是字符串类型(String),那么我们就可以使用s1,s2s_1,s_2s1​,s2​存下a1,a2a_1,a_2a1​,a2​,

深入探讨:

我们发现a1a_1a1​是多少并不重要,我们只关系其奇偶性,那么我们只需要判断其最后一位的奇偶性即可,那么我们可以使用字符串的函数s1.back()s_1.back()s1​.back()来获取s1s_1s1​的最后一个位置上的字符,但是我们此时取出来的只是一个字符,并不是一个数,对于一个在’000‘−-−999’之间的字符ccc,我们使用ccc-'000’即可获取到其对应的数值,最后再根据a2a_2a2​把a2a_2a2​分成三种情况讨论即可。
不懂的可以看代码注释:

inline void solve(){string s1,s2;//使用字符串读入a1,a2cin>>s1>>s2;int a=s1.back()-'0';//获取a1最后一位if(s2[0]=='5'){int f=1;//标记后面是否全是0for(int i=1;i//判断后面是否全是0if(s2[i]!='0'){f=0;break;}}if(f){//后面全是0,那么当前a2=5if(a%2){//当a1为奇数时进位所以多了cout<<"Happy birthday to MFGG"<//当a1为偶数时去掉小数部分所以少了cout<<"Happy birthday to YXGG"<//后面不全是0,那么当前a2>5,因此会进位,所以多了cout<<"Happy birthday to MFGG"<'5'){//a2>5,因此会进位,所以多了cout<<"Happy birthday to MFGG"<//因为不含有前导0,所以a2=0,此时不进不舍,所以不变cout<<"PLMM"<//0

相关内容

热门资讯

新质新格局,景芝白酒再次点亮黄... 11月18日,备受瞩目的2025年第六届中国白酒黄淮核心产区高质量发展峰会在淄博举办。本届峰会以“新...
今日播出|丝路陕茶 千年留香 播出时间:农林卫视《农村大市场》11月19日22:05 丝路陕茶 千年留香 陕西是我国最早种茶、出产...
纠结有什么好吃的零食品牌推荐?... 在快节奏的现代生活中,零食早已超越了单纯的充饥角色,转而成为我们慰藉味蕾、补充能量、甚至分享快乐的重...
吃巧克力能缓解甲状腺相关疲劳? 一、甲状腺相关疲劳的核心成因 要判断巧克力能否缓解甲状腺相关疲劳,首先需要明确这种疲劳的根源。甲状腺...
暖乎乎的酒酿南瓜丸子羹,一口甜... 秋冬最治愈的家常甜汤,必须提名酒酿南瓜丸子羹!金黄的南瓜丸子软乎乎,裹着清甜的酒酿汤汁,一口下去暖到...