1.
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int sum=0;
do{
if(n%2==0)
{
n=n/2;
sum=sum+1 ;
}
else if(n%2!=0)
{
n=(3*n+1)/2;
sum=sum+1;
}
}while(n!=1);
cout<<sum<<endl;
}
2.
#include <iostream>
#include <string>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
string s;
cin>>s;
int sum=0;
int num=0;
for(int n=0;s[n]!='\0';n++)
{
num=num+1;
}
for(int i=0;i<num;i++)
{
sum=sum+(s[i]-'0');
}
//取余数法求和
//字符串数组:指针+一维数组
//数组中的每一个元素都是一个指向一维数组的指针
const char* a[10] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int n[10];
int yushu;
int len=0;
do{
yushu=sum%10;
n[len]=yushu;
len=len+1;
sum=sum/10;
}while(sum!=0);
int j;
for(j=len-1;j>0;j--)
{
cout<<a[n[j]]<<" ";
}
cout<<a[n[0]];
}
4.
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
int n;
cin>>n;
class Student{
public:
string name;
string xuehao;
int grade;};
Student S[100];
for(int i=0;i<n;i++)
cin>>S[i].name>>S[i].xuehao>>S[i].grade;
int max=0;
for(int i=0;i<n;i++)
{if(S[i].grade>max)
max=S[i].grade;}
int min=100;
for(int i=0;i<n;i++)
{
if(S[i].grade<min)
min=S[i].grade;
}
for(int i=0;i<n;i++)
{
if(S[i].grade==max)
cout<<S[i].name<<" "<<S[i].xuehao<<endl;
}
for(int i=0;i<n;i++)
{
if(S[i].grade==min)
cout<<S[i].name<<" "<<S[i].xuehao<<endl;
}
}
6.
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int ones,tens,hundreds;
char num[100];
int len=0;//记录num中元素的个数
ones=n%10;
for(int j=ones;j>=1;j--)
{
num[len]=j+'0';
len=len+1;
}
n=n/10;
if(n!=0)
{
tens=n%10;
for(int j=1;j<=tens;j++)
{
num[len]='S';
len=len+1;
}
}
n=n/10;
if(n!=0)
{
hundreds=n%10;
for(int j=1;j<=hundreds;j++)
{
num[len]='B';
len=len+1;
}
}
for(int j=len-1;j>=0;j--)
cout<<num[j];
}
8.
#include <iostream>
using namespace std;
int main()
{
int A[200];
int N;
int M;
cin>>N>>M;
for(int i=0;i<N;i++)
cin>>A[i];
for(int i=0;i<M;i++)
A[100+i]=A[N-M+i];
for(int i=N-1;i>=M;i--)
A[i]=A[i-M];
for(int i=0;i<M;i++)
A[i]=A[100+i];
for(int i=0;i<N-1;i++)
cout<<A[i]<<" ";
cout<<A[N-1];
}
9.
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
string s1;
getline(cin,s1);
int len;
len=s1.length();
char S[80][80];
for(int i=0;i<80;i++)
for(int j=0;j<80;j++)
S[i][j]=' ';
int j=0;
int m=0;
for(int i=0;i<len;i++)
{
{
if(s1[i]!=' ')
{
S[m][j]=s1[i];
j++;
}
else if(s1[i]==' ')
{
m++;
j=0;
}
}
}
/*for(int i=0;i<80;i++)
{{for(int j=0;j<80;j++)
cout<<S[i][j];}
cout<<endl;}
cout<<m;
m:单词个数*/
for(int n=m;n>0;n--)
{
int j=0;
do{
j++;}while(S[n][j]!=' ');
/*cout<<j<<endl;*/
for(int i=0;i<j;i++)
cout<<S[n][i];
cout<<" ";
}
int num=0;
do{
num++;}while(S[0][num]!=' ');
for(int i=0;i<num;i++)
cout<<S[0][i];
}
11.
#include <iostream>
using namespace std;
int main()
{
class Number{
public:
long A;
long B;
long C;};
int T;
cin>>T;
Number N[10];
for(int i=0;i<T;i++)
cin>>N[i].A>>N[i].B>>N[i].C;
for(int i=0;i<T;i++)
{
if((N[i].A+N[i].B)>N[i].C)
cout<<"Case #"<<i+1<<":"<<" true"<<endl;
else if((N[i].A+N[i].B)<=N[i].C)
cout<<"Case #"<<i+1<<":"<<" false"<<endl;
}
}
13.
#include <iostream>
#include <math.h>
using namespace std;
const int maxn=1000001;
int prime[maxn],num=0;
bool p[maxn]={0};
void Find_Prime(int n){
for(int i=2;i<maxn;i++)
{
if(p[i]==false){
prime[num++]=i;
if(num>=n) break;
for(int j=i+1;j<maxn;j+=i){
p[j]=true;
}
}
}
}
int main()
{
int m,n,count=0;
cin>>m>>n;
Find_Prime(n);
for(int i=m;i<=n;i++){
cout<<prime[i-1];
count++;
if(count%10!=0&&i<n)
cout<<" ";
else cout<<endl;
}
}
16.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string A,B;
int a,b,pa,pb;
cin>>A>>a>>B>>b;
int len_A=0;
int len_B=0;
do
{len_A=len_A+1;
}while(A[len_A]!='\0');
do
{len_B=len_B+1;
}while(B[len_B]!='\0');
int len_a=0;
int len_b=0;
for(int i=0;i<len_A;i++)
{
if((A[i]-'0')==a)
len_a++;
}
for(int j=0;j<len_B;j++)
{
if((B[j]-'0')==b)
len_b++;
}
pa=a;
pb=b;
for(int i=1;i<len_a;i++)
{
pa=pa*10+a;
}
if(len_a==0)
{
pa=0;
}
for(int j=1;j<len_b;j++)
{
pb=pb*10+b;
}
if(len_b==0)
{
pb=0;
}
cout<<pa+pb;
}
20.
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
bool cmp(double a,double b)
{
return a>b;
}
int main()
{
class Yuebing{
public:
int kucunliang;
int zongshoujia;};
int N;
int Max;
cin>>N>>Max;
Yuebing X[1000];
for(int i=0;i<N;i++)
cin>>X[i].kucunliang;
for(int i=0;i<N;i++)
cin>>X[i].zongshoujia;
double A[1000];
double B[1001];
for(int i=0;i<N;i++)
A[i]=double(X[i].zongshoujia)/double(X[i].kucunliang);
/*for(int i=0;i<N;i++)
cout<<A[i]<<endl;*/
for(int i=0;i<N;i++)
B[i]=A[i];
sort(B,B+N,cmp);//数组变量名是指向首地址的指针
/*for(int i=0;i<N;i++)
cout<<B[i]<<endl;*/
int i=0;
double shouyi=0;
do{
for(int j=0;j<N;j++)
{
if(A[j]==B[i])
{
if(Max>=X[j].kucunliang)
{
shouyi=shouyi+X[j].zongshoujia;
Max=Max-X[j].kucunliang;
//cout<<shouyi<<" "<<Max<<endl;
i++;
continue;
}
else if(Max<X[j].kucunliang)
{
shouyi=shouyi+(double(Max)/double(X[j].kucunliang))*X[j].zongshoujia;
Max=0;
//cout<<shouyi<<" "<<Max<<endl;
break;
}
}
}
}while(Max!=0);
cout<<fixed<<setprecision(2)<<shouyi;
}
21.
#include <iostream>
#include <string.h>
#include <string>
using namespace std;
int main()
{
int a[10]={0,0,0,0,0,0,0,0,0,0};
string s;
cin>>s;
int num=0;
do{
num++;
}while(s[num]!='\0');
for(int i=0;i<num;i++)
{
a[(s[i]-'0')]=a[(s[i]-'0')]+1;
}
for(int i=0;i<10;i++)
{
if(a[i]!=0)
{
cout<<i<<":"<<a[i]<<endl;
}
}
}
22.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int A,B,D;
cin>>A>>B>>D;
int sum;
sum=A+B;
int new_sum=0;
int yushu;
int i=0;
do{
yushu=sum%D;
//cout<<"yushu:"<<yushu<<endl;
sum=sum/D;
//cout<<"sum:"<<sum<<endl;
new_sum=new_sum+yushu*pow(10,i);
//cout<<"new_sum:"<<new_sum<<endl;
i++;
}while(sum!=0);
cout<<new_sum;
}
23
#include <iostream>
using namespace std;
int main(){
int a[10];
for( int i = 0; i < 10; i++){
cin>>a[i];
}
for( int i = 0; i < 10; i++){
if( i != 0 && a[i] != 0){
cout<<i;
a[i]--;
break;
}
}
for( int i = 0; i < 10; ){
if( a[i] != 0){
cout<<i;
a[i]--;
}else{
i++;
}
}
}
26.
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int c1,c2;
int hh,mm,ss;
cin >> c1 >> c2;
int sum;
int CLK_TCK=100;
float r;
sum = (c2 - c1)/CLK_TCK;
r = (c2 - c1)%CLK_TCK;
if (r >=50) sum++;
hh = sum / 3600;
sum = sum % 3600;
mm = sum / 60;
ss = sum % 60;
cout<<setfill('0')<<setw(2)<<hh<<":";
cout<<setfill('0')<<setw(2)<<mm<<":";
cout<<setfill('0')<<setw(2)<<ss;
return 0;
}
27.
#include <iostream>
using namespace std;
int main()
{
int N;
char x;
cin>>N>>x;
int sum=0;
int i;
for(i=1;sum<=N;i++)
{sum=(sum+i)*2-1;
cout<<"i:"<<i<<endl;
cout<<"sum:"<<sum<<endl;}
//cout<<i-2<<endl;
//cout<<"sum:"<<sum<<endl;
int m=1;
int s=0;
do{
s=(s+i)*2-1;
m++;
}while(m<=i-2);
cout<<s;
}
29.
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
int L1=s1.length();
int L2=s2.length();
char s3[80];
int j=0;
int m=0;
for(int i=0;i<L1;i++)
{
if(s1[i]==s2[j])
{
j++;
if(j==L2)
break;//执行循环下面的语句
}
else if(s1[i]!=s2[j])
{
s3[m]=s1[i];
m++;
}
}
//m:s3的数组元素个数
for(int i=0;i<m;i++)
{
if(s3[i]>'a' and s3[i]<'z')
{
s3[i]=s3[i]-32;
}
}
int n[80];
for(int i=0;i<m;i++)
n[i]=1;
for(int i=1;i<m;i++)
for(int j=0;j<i;j++)
{
if(s3[i]==s3[j])
n[i]++;
}
for(int i=0;i<m;i++)
{
if(n[i]==1)
cout<<s3[i];
}
}
32.
#include <iostream>
using namespace std;
int main()
{
int N;
cin>>N;
int num;
int chengji;
//学校从1开始连续编号
int CJ[100001];
for(int i=0;i<100001;i++)
CJ[i]=0;
for(int i=0;i<N;i++)
{
cin>>num>>chengji;
CJ[num]=CJ[num]+chengji;
}
int max=-1;
for(int i=0;i<100001;i++)
{
if(CJ[i]>max)
max=CJ[i];
}
for(int i=0;i<=100000;i++)
if(CJ[i]==max)
cout<<i<<" "<<CJ[i];
}
36.
#include <iostream>
using namespace std;
int main()
{
int N;
char C;
cin>>N>>C;
for(int i=1;i<=N;i++)
cout<<C;
cout<<endl;
if(N%2==0)
{for(int j=1;j<=N/2-2;j++)
{
cout<<C;
{
for(int i=1;i<=N-2;i++)
cout<<' ';
}
cout<<C;
cout<<endl;
}}
else if(N%2!=0)
{for(int j=1;j<=N/2-1;j++)
{
cout<<C;
{
for(int i=1;i<=N-2;i++)
cout<<' ';
}
cout<<C;
cout<<endl;
}}
for(int i=1;i<=N;i++)
cout<<C;
cout<<endl;
}
37.
#include <iostream>
using namespace std;
int main()
{
int g1,s1,k1,g2,s2,k2;
//解决输入的问题
char x='.';
int P,A,money;
cin>>g1>>x>>s1>>x>>k1;
cin>>g2>>x>>s2>>x>>k2;
P=g1*17*29+s1*29+k1;
A=g2*17*29+s2*29+k2;
//全部换成最便宜的货币
money=A-P;
if(money<0)
{
money=-money;
cout<<"-"<<money/17/29<<"."<<money%(17*29)/29<<"."<<money%29<<endl;
}
else
{
cout<<money/17/29<<"."<<money%(17*29)/29<<"."<<money%29<<endl;
}
}
40.
#include <iostream>
#include <string.h>
#include <string>
using namespace std;
const int MAXN=10010;
const int MOD=100000007;
char str[MAXN];
int leftNump[MAXN]={0};
int main()
{
cin>>str;
int len=sizeof(str);
for(int i=0;i<len;i++)
{
if(i>0)
{
leftNump[i]=leftNump[i-1];
}
if(str[i]=='P')
{
leftNump[i]++;
}
}
int ans=0,rightNumT=0;
for(int i=len-1;i>=0;i--){
if(str[i]=='T'){
rightNumT++;
}else if(str[i]=='A'){
ans=(ans +leftNump[i]*rightNumT)%MOD;
}
}
cout<<ans;
}
41.
#include <iostream>
#include <string.h>
#include <string>
using namespace std;
int main()
{
class Student{
public:
string kaohao;
int jishi;
int kaoshi;};
Student a[1000];
int N;
cin>>N;
for(int i=0;i<N;i++)
{cin>>a[i].kaohao>>a[i].jishi>>a[i].kaoshi;}
int num;
cin>>num;
int jishizuoweihao[1000];
for(int i=0;i<num;i++)
cin>>jishizuoweihao[i];
for(int i=0;i<num;i++)
for(int j=0;j<N;j++)
if(a[j].jishi==jishizuoweihao[i])
{
cout<<a[j].kaohao<<" "<<a[j].jishi<<endl;
}
}
46.
#include <iostream>
using namespace std;
int main()
{
class huaquan{
public:
int jiahan;
int jiahua;
int yihan;
int yihua;};
huaquan a[100];
int N;
cin>>N;
for(int i=0;i<N;i++)
cin>>a[i].jiahan>>a[i].jiahua>>a[i].yihan>>a[i].yihua;
int jia=0;
int yi=0;
for(int i=0;i<N;i++)
{
if(a[i].jiahua==a[i].jiahan+a[i].yihan&&a[i].yihua!=a[i].jiahan+a[i].yihan)
{yi++;}
else if(a[i].yihua==a[i].jiahan+a[i].yihan&&a[i].jiahua!=a[i].jiahan+a[i].yihan)
{jia++;}
}
cout<<jia<<" "<<yi;
}