```
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
string s="";
while(n>0)
{
if(n%2==1)
{
n=(n-1)/2;
s="1"+s;
}
else if(n%2==0)
{
n=n/2-1;
s="2"+s;
}
}
cout<<s<<endl;
}
---
#include<iostream>
using namespace std;
int main()
{
int n;
int weight[6]={0,0,0,0,0,0};
int w=1;
cin>>n;
int i=0,j=0;
while(n>0)
{
weight[i]=n%10;
n/=10;
i++;
}
while(i-1-j>=j)
{
weight[j]+=weight[i-1-j];
weight[i-1-j]=weight[j];
j++;
}
for(int k=0;k<i;k++)
{
if(weight[k]>=10)
{
weight[k]%=10;
weight[k+1]++;
}
}
n=0;
for(int j=0;j<6;j++)
{
n+=weight[j]*w;
w*=10;
}
cout<<n<<endl;
}
---
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
string s;
int letter[26],sum=0,n=1;
cin>>s;
for(int i=0;i<26;i++)
{
letter[i]=0;
}
letter[s[0]-'a']++;
for(int i=1;i<s.length();i++)
{
letter[s[i]-'a']++;
if(i==s.length()-1)
{
sum+=letter[s[i]-'a'];
letter[s[i]-'a']=0;
}
if(s[i]!=s[i-1])
{
sum+=letter[s[i-1]-'a'];
letter[s[i-1]-'a']=0;
n++;
}
}
printf("%.2f\n",round(sum*100.0/n)/100);
}
---
#include<iostream>
using namespace std;
int main()
{
int n=0,m[11];
int num[10001];
int n4=0,n2=0,n1=0;
cin>>n;
for(int i=0; i<n; i++)
{
n4=0;
n2=0;
n1=0;
cin>>m[i];
for(int j=0; j<m[i]; j++)
{
cin>>num[j];
if(num[j]%4==0)
{
n4++;
}
else if(num[j]%2==0)
{
n2++;
}
else
{
n1++;
}
}
if(n4==0)
{
if(n1==0&&n2>=2)
{
cout<<"Yes"<<endl;
continue;
}
}
if(n4==1)
{
if(n1<=1)
{
cout<<"Yes"<<endl;
continue;
}
if(n1==2&&n2==0)
{
cout<<"Yes"<<endl;
continue;
}
}
if(n4>=2)
{
if(n2==0)
{
if(n4>=n1-1)
{
cout<<"Yes"<<endl;
continue;
}
}
if(n2>0)
{
if(n4>=n1)
{
cout<<"Yes"<<endl;
continue;
}
}
}
cout<<"No"<<endl;
}
return 0;
}
---
#include <iostream>
using namespace std;
int main()
{
int letter[26];
int type=0;
string s;
cin>>s;
for(int i=0;i<26;i++)
{
letter[i]=0;
}
for(int i=0;i<s.length();i++)
{
if(letter[s[i]-'A']==0)
{
type++;
}
letter[s[i]-'A']++;
if(type>2)
{
cout<<'0'<<endl;
return 0;
}
}
if(type==1)
{
cout<<'1'<<endl;
return 0;
}
cout<<'2'<<endl;
return 0;
}
---
#include <iostream>
using namespace std;
int main()
{
int n=0,d=0;
int MAX=-1,MIN=1001;
int s[51];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s[i];
if(s[i]>MAX)
{
MAX=s[i];
}
if(s[i]<MIN)
{
MIN=s[i];
}
}
if((MAX-MIN)%(n-1)==0)
{
d=(MAX-MIN)/(n-1);
}
else
{
cout<<"Impossible"<<endl;
return 0;
}
for(int i=1;i<n;i++)
{
if(d==0)
{
if(s[i]!=s[i-1])
{
cout<<"Impossible"<<endl;
return 0;
}
}
else if((s[i]-s[i-1])%d!=0)
{
cout<<"Impossible"<<endl;
return 0;
}
}
cout<<"Possible"<<endl;
return 0;
}
---
//###############
//
//01串
//
//###############
#include <iostream>
using namespace std;
int main()
{
int i=1,MAX=1,temp=1;
string s;
cin>>s;
while(i<s.length())
{
if(s[i]!=s[i-1])
{
temp++;
if(temp>MAX)
{
MAX=temp;
}
}
else if(temp>MAX)
{
MAX=temp;
temp=1;
}
else
{
temp=1;
}
i++;
}
cout<<MAX<<endl;
return 0;
}
---
//###############
//
//小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n//次以下操作:
//1、将a_i放入b序列的末尾
//2、逆置b序列
//小易需要你计算输出操作n次之后的b序列。
//
//###############
#include <iostream>
using namespace std;
int main()
{
int a[200003],n;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>a[i];
}
for(int i=0;; i++)
{
if((n-1-2*i)>=0)
{
cout<<a[n-1-2*i]<<' ';
}
else
{
break;
}
}
for(int i=0;; i++)
{
if((1+2*i)<=(n-1))
{
if(n%2==1)
{
if((1+2*i)==(n-2))
{
cout<<a[1+2*i];
}
else
{
cout<<a[1+2*i]<<' ';
}
}
else
{
if((2*i)==(n-2))
{
cout<<a[2*i];
}
else
{
cout<<a[2*i]<<' ';
}
}
}
else
{
break;
}
}
return 0;
}
---
//苹果
#include <iostream>
using namespace std;
int main()
{
int x,f,d,p,money,pay,day;
cin>>x>>f>>d>>p;
if(f>d/x)
{
cout<<d/x<<endl;
}
else
{
cout<<f+(d-f*x)/(x+p)<<endl;
}
return 0;
}
---
```
水题练习
最新推荐文章于 2025-03-17 20:13:21 发布