1d6+1d70+1d10+6
50.5
#include <bits/stdc++.h> using namespace std; #define ll long long const int mod=1e9+7; const int N=5e3+5; double ans; int a[N]; int main(){ ios::sync_with_stdio(0); string s; cin>>s; int n=s.size(),j=1; for(int i=0;i<n;i++) if(s[i]==‘+‘) a[j++]=i; //cout<<j<<endl; a[0]=-1; for(int i=1;i<j;i++){ int k=a[i-1]+1,x=0,y=0; while(s[k]!=‘d‘&&k<a[i]){ x=10*x+s[k]-‘0‘; k++; } k++; while(k<a[i]){ y=10*y+s[k]-‘0‘; k++; } //cout<<x<<‘ ‘<<y<<endl; if(y) ans+=1.0*x*(y+1)/2; else ans+=x; } int k=a[j-1]+1;int x=0,y=0; while(s[k]!=‘d‘&&k<n){ x=10*x+s[k]-‘0‘; k++; } k++; while(k<n){ y=10*y+s[k]-‘0‘; k++; } //cout<<x<<" ."<<y<<endl; if(y) ans+=1.0*x*(y+1)/2; else ans+=x; if(floor(ans)==ans) printf("%.0lf\n",ans); else printf("%.1lf\n",ans); return 0; }
原文:https://www.cnblogs.com/asunayi/p/12898249.html