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


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

    题面链接:柜台结账
    题目分析:

    这是一道 i f − e l s e if-else ifelse语句的基础题目,由于数据量很大达到了 1 0 1 0 5 10^{10^{5}} 10105,换成 10 10 10进制会有 1 0 5 10^{5} 105位,而我们现阶段的数据类型最多也只能存下几十位大的数,所以这题我们得用别的方法存下来,而什么数据类型能存下 1 0 5 10^5 105的数据呢,显然是字符串类型(String),那么我们就可以使用 s 1 , s 2 s_1,s_2 s1,s2存下 a 1 , a 2 a_1,a_2 a1,a2

    深入探讨:

    我们发现 a 1 a_1 a1是多少并不重要,我们只关系其奇偶性,那么我们只需要判断其最后一位的奇偶性即可,那么我们可以使用字符串的函数 s 1 . b a c k ( ) s_1.back() s1.back()来获取 s 1 s_1 s1的最后一个位置上的字符,但是我们此时取出来的只是一个字符,并不是一个数,对于一个在’ 0 0 0 − - 9 9 9’之间的字符 c c c,我们使用 c c c-' 0 0 0’即可获取到其对应的数值,最后再根据 a 2 a_2 a2 a 2 a_2 a2分成三种情况讨论即可。
    不懂的可以看代码注释:

    inline void solve(){
    	string s1,s2;//使用字符串读入a1,a2
    	cin>>s1>>s2;
    	int a=s1.back()-'0';//获取a1最后一位
    	if(s2[0]=='5'){
    		int f=1;//标记后面是否全是0
    		for(int i=1;i<s2.length();i++){//判断后面是否全是0
    			if(s2[i]!='0'){
    				f=0;
    				break;
    			}
    		}
    		if(f){//后面全是0,那么当前a2=5
    			if(a%2){//当a1为奇数时进位所以多了
    				cout<<"Happy birthday to MFGG"<<endl;
    			}
    			else{//当a1为偶数时去掉小数部分所以少了
    				cout<<"Happy birthday to YXGG"<<endl;
    			}
    		}
    		else{//后面不全是0,那么当前a2>5,因此会进位,所以多了
    			cout<<"Happy birthday to MFGG"<<endl;
    		}
    	}
    	else if(s2[0]>'5'){//a2>5,因此会进位,所以多了
    		cout<<"Happy birthday to MFGG"<<endl;
    	}
    	else if(s2[0]=='0'){//因为不含有前导0,所以a2=0,此时不进不舍,所以不变
    		cout<<"PLMM"<<endl;
    	}
    	else{//0
    		cout<<"Happy birthday to YXGG"<<endl;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
  • 相关阅读:
    BootLooder引导传参和镜像编译
    【区块链 | Compound】3.剖析DeFi借贷产品之Compound:Subgraph篇
    小迪安全笔记(3)——基础入门3、基础入门4
    ViewConfiguration
    Maven依赖解决
    C++入门知识整理(持续更新)
    Linux:rwx操作对目录的操作效果+rwx的最小权限问题
    【C++】引用做函数返回值时必须要注意
    java和设计模式(结构模式)
    文件中的关键字与对应的协议
  • 原文地址:https://blog.csdn.net/m0_56280274/article/details/127930362