在如下的1000位数字中,连续十三个的最大成绩 包含0的数组 13个含0就是0
#include<iostream>
using namespace std;
char num[1005];
long long ans,now =1;
int zero_cnt;
int main(){
cin>>num;
for(int i=0;i<1000;i++){
if(i<13){
if(num[i]=='0'){
zero_cnt++;
}else{
now*=num[i]-'0';
}
}else{
if(num[i]=='0'){
zero_cnt++;
}
else{
now*=num[i]-'0';
}
if(num[i-13]=='0'){
zero_cnt--;
}else{
now/=num[i-13]-'0';
}
}
if(zero_cnt==0){
ans=max(ans,now);
}
}
cout<<ans<<endl;
}

这段代码的主要目的是在给定的1000位数字字符串中找出最长的连续子串,该子串不包含0且其数值最大。程序通过遍历字符串,维护一个变量now来保存当前子串的值,同时记录零的个数zero_cnt。当遇到0时,更新zero_cnt;否则,根据之前的零个数调整now的值。最后,更新最大值ans。这是一个关于字符串处理和动态规划的问题。
4911

被折叠的 条评论
为什么被折叠?



