ACM 实验室2020.11.01天梯赛练习*4

7-6 连续因子 (20分)

int main()
{
speed_up;
ll n;
cin>>n;
ll nn=n;
ll m=0;//标记连续个数
ll maxx=0;//记录最大连续长度
ll t=0;//记录起始下标
for(int i=2; i<sqrt(n)+1; i++)
{
int j=i;
if(n%j!=0)
continue;
else //j是因子
{
while(nn%j==0)
{
nn/=j;
j++;
m++;//判断有几个连着的因子
}
if(maxx<m)
{
maxx =m ;
t = i;
}
m=0;
nn = n;
}
}
if(maxx==0)//没有连续的就输出它本身
{
cout<<1<<endl;
cout<<n<<endl;
}
else
{
cout<<maxx <<endl;
cout<<t;
for(int i =1; i<maxx; i++)
{
cout<<"*"<<t+i;
}
cout<<endl;
}
}

7-2 到底有多二 (15分)

这个题本来用整数做的,测试点没全过,查了题解发现用字符串做比较简单

int main()
{
speed_up;
string s;
cin>>s;
double n,t=0,m=1.0;//注意用1.0
n=s.size();
if(s[0]=='-')m*=1.5;
if((s[n-1]-'0')%2==0)m*=2;
for(int i=0;i<n;i++)
{
if(s[i]=='2')t++;
}
//cout<<t<<endl;
if(s[0]=='-')n--;
double ss=(t*1.0/n*1.0)*m*100;
printf("%.2f%\n",ss);
}

posted @ 2020-11-08 20:32  SyrupWRLD  阅读(86)  评论(0)    收藏  举报