社区讨论
站外题求助
学术版参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @m1pwu4e7
- 此快照首次捕获于
- 2024/10/01 11:59 去年
- 此快照最后确认于
- 2025/11/04 18:24 4 个月前
题目描述
小珅最近看到了一个手机尾号估价的直播,人们总会按照内心喜好的对四位的手机尾号附加一些意义和价值,小珅也设置了一个估价规则:
- 基础价格:所有数字之和。
- 连号加价:如果有 个数字 相邻(要求 ),那么会在基础价格的基础上增加 。
- 特殊数字:中国人喜欢 ,和 ,每出现一个 8 或 6,价格都在之前的基础上翻倍一次。 现在输入四个数字字符,为 小珅 的手机尾号,请输出估价。 输入 四个数字字符。 输出 输出估价。 样例输入 复制
8888
OUTPUT166048
样例 1 解释
基础价格:8+8+8+8=32,连号加价 32+8^4=4128,特殊数字翻倍 4128* 2* 2* 2* 2=66048
INPUT20000
OUTPUT20
INPUT38848
OUTPUT3736
样例 3 解释
基础价格:8+8+4+8=28,连号加价 28+8^2=92,特殊数字翻倍 92* 2* 2* 2=736
我的代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
CPPstring s;
cin>>s;
int ans0=0;
for(char c:s){
ans0+=c-'0';
}
int cnt1=1,ss,cnt=1;
for(int i=0;i<s.size()-1;i++){
if(s[i]==s[i+1]){
cnt1++;
ss=s[i]-'0';
}
}
for(int i=1;i<=cnt1;i++){
cnt*=ss;
}
int sum=cnt+ans0;
int sa=count(s.begin(),s.end(),'8')+count(s.begin(),s.end(),'6');
for(int i=1;i<=sa;i++){
sum*=2;
}
cout<<sum<<endl;
return 0;
}
求解答(24%)
回复
共 5 条回复,欢迎继续交流。
正在加载回复...