1 条题解

  • 0
    @ 2025-5-6 20:28:37

    解题思路

    1. 函数 getmil
      • 根据输入的字符 c 和数值 p 进行计算。
      • 如果 c"Y",若 p 大于 500,返回 p,否则返回 500
      • 如果 c"F",返回 2 * p
      • 如果 p 为奇数,返回 p + p / 2 + 1
      • 如果 p 为偶数,返回 p + p / 2
    2. 主函数 main
      • 定义字符串 ab,字符 c 和整数 presres 初始化为 0)。
      • 使用 while 循环读取输入的字符串 a
      • a"#" 时,结束循环。
      • a"0" 时,输出 res 的值,并将 res 重置为 0
      • a 不为 "0" 时,读取字符串 b、整数 p 和字符 c,调用 getmil 函数计算并将结果累加到 res 中。
    #include<iostream>
    #include<string>
    using namespace std;
    
    int getmil(char c, int p){
    	if(c=='Y'){
    		if(p>500)
    			return p;
    		return 500;
    	}
    	if(c=='F')
    		return 2*p;
    	if(p%2)
    		return p+p/2+1;
    	return p+p/2;
    }
    
    int main(){
    	string a,b;
    	char c;
    	int p,res=0;
    	while(cin>>a&&a!="#"){
    		if(a=="0"){
    			cout << res << endl;
    			res = 0;
    		}
    		else{
    			cin >> b >> p>>c;
    			res+=getmil(c,p);
    		}
    	}
    }
    
    
    • 1

    信息

    ID
    327
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者