训练题集A

打印沙漏

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,x=0,y=0;
    char c;
    cin>>n>>c;
    x=sqrt((n+1)/2);
    y=x-1;
    for(int i=x;i>=1;i--){
        for(int j=x-i;j>=1;j--)
            cout<<" ";
        for(int k=2*i-1;k>=1;k--)
            cout<<c;
        cout<<endl;
    }
    for(int i=1;i<=y;i++){
        for(int j=y-i;j>=1;j--)
            cout<<" ";
        for(int k=1;k<=2*i+1;k++)
            cout<<c;
        cout<<endl;
    }
    n=n-(2*x*x-1);
    cout<<n;
    return 0;
}

 连续因子

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int ans1=0,ans2=0;
    for(int i=2;i<sqrt(n);i++){
        int temp=n;
        int x=i;
        int len=0;
        while(temp%x==0&&temp!=0){
            len++;
            temp=temp/x;
            x++;
        }
        if(len>ans1){
            ans1=len;
            ans2=i;
        }
    }
    if(ans1==0)cout<<1<<endl<<n<<endl;
    else {
        cout<<ans1<<endl;
        for(int i=ans2;i<ans1+ans2;i++){
            if(i>ans2)cout<<"*";
            cout<<i;
        }
    }
    return 0;
}

 N个数求和

#include<stdio.h>
int com_div(long long x,long long y)
{
    int tmp = 0;
    while(tmp=x%y)
    {
        x=y;
        y=tmp;
    }
    return y;
}
int main()
{
    int n = 0;
    scanf("%d",&n);
    int i = 0;
    long long a = 0;
    long long b = 0;
    long long suma = 0;
    long long sumb = 0;
    for(i=0;i<n;i++)
    {
        scanf("%lld/%lld",&a,&b);
        if(suma==0)
        {
            suma=a;
            sumb=b;
        }
        else
        {
            suma=suma*b+a*sumb;
            sumb=sumb*b;
        }
        int max=com_div(suma,sumb);
        suma/=max;
        sumb/=max;
    }
    if(suma && (suma/sumb==0))
    {
        printf("%lld/%lld",suma,sumb);
    }
    else if(suma%sumb==0)
    {
        printf("%lld",suma/sumb);
    }
    else
    {
        printf("%lld %lld/%lld",suma/sumb,suma%sumb,sumb);
    }
    return 0;
}

 查验身份证

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,a[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},x=0,y=0,sum=0;
    char b[11]={'1','0','X','9','8','7','6','5','4','3','2'};
    string s;
    cin>>n;
    getchar();
    while(n--){
    getline(cin,s);
        sum=0,x=0;
        for(int i=0;i<s.size()-1;i++){
            if(s[i]<'0'||s[i]>'9'){x=1;
            break;}
            else sum=sum+(s[i]-'0')*a[i];
        }
        sum=sum%11;
        if(s[17]!=b[sum]||x==1){y=1;cout<<s<<endl;}
    }
    if(y==0)cout<<"All passed";
    return 0;
}

 到底有多二

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    int x=0,y=0,n=0,d=0;
    cin>>s;
    if(s[0]=='-')x=1;
    if((s[s.size()-1]-'0')%2==0)y=1;
    for(int i=0;i<s.size();i++)
        if(s[i]=='2')n++;
    d=s.size();
    if(x)d=d-1;
    double sum=0;
    sum=n*1.0/d;
    if(x==1&&y==0)sum=sum*1.5;
    if(x==0&&y==1)sum=sum*2.0;
    if(x==1&&y==1)sum=sum*3.0;
    printf("%.2lf%%",sum*100);
    return 0;
}

  正整数A+B

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a,b,c;
    int a1=0,b1=0,x=0,y=0;
    cin>>a>>b;
    if(cin>>c)y=1;
    if(a[0]=='0')x=1;
    if(b[0]=='0')y=1;
    for(int i=0;i<a.size();i++){
        if(isdigit(a[i])==0)x=1;
        else a1=a1*10+(a[i]-'0');
    }
    for(int i=0;i<b.size();i++){
        if(isdigit(b[i])==0)y=1;
        else b1=b1*10+(b[i]-'0');
    }
    if(a1>1000)x=1;
    if(b1>1000)y=1;
    if(x==1)cout<<"?";
    else cout<<a1;
    cout<<" + ";
    if(y==1)cout<<"?";
    else cout<<b1;
    cout<<" = ";
    if(x==1||y==1)cout<<"?";
    else cout<<a1+b1;
    return 0;
}

 帅到没朋友

#include<stdio.h>
int main()
{
    int search[100000]={0};
    int N,i,j,q,x,c,t,flag=0;
    scanf("%d",&N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&c);
        for(j=0;j<c;j++)
        {scanf("%d",&t);
         if(c!=1)
         search[t]++;} 
    }
    scanf("%d",&q);
    for(i=0;i<q;i++)
    {
        scanf("%d",&x);
        if(search[x]==0&&search[x]!=-1)
        {
            if(flag>0)
                printf(" %05d",x);
            else
            printf("%05d",x);
            search[x]=-1;
            flag++;
        }
    }
    if(flag==0)
        printf("No one is handsome\n");
}

判断素数

#include<bits/stdc++.h>
using namespace std;
int isprime(int x){
    int f=0;
    if(x==1)f=1;
    for(int i=2;i<sqrt(x);i++){
        if(x%i==0)f=1;
    }
    return f;
}
int main()
{
    int n,x;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        if(isprime(x))cout<<"No\n";
        else cout<<"Yes\n";
    }
}

 出生年

#include<bits/stdc++.h>
using namespace std;
int b[5005];
int main()
{
    int y,n;
    int a[4];
    cin>>y>>n;
    int z=y;
    while(1){
        a[0]=y/1000;
        a[1]=y%1000/100;
        a[2]=y%100/10;
        a[3]=y%10;
        int x=0;
        for(int i=0;i<4;i++)
            b[a[i]]=1;
        for(int i=0;i<10;i++)
            if(b[i]==1)x++;
        if(x==n)break;
        for(int i=0;i<10;i++)
            b[i]=0;
        y++;
    }

    cout<<y-z;
    printf(" %04d",y);
    return 0;
}

 出租

#include<stdio.h>
#include<string.h>
int main()
{
	int phone[11];//存放手机号码 
	int a[10],b[10];//a[]统计号码数字;b[]要将a[]的数字从倒小排列 
	int i,j=0,k=0;
	memset(a,-1,sizeof(a));
	memset(b,-1,sizeof(b));
	char s[11];
	scanf("%s",s);
	for(i=0;i<11;i++)
	{
		phone[i]=s[i]-'0';
		a[phone[i]]++;
	}
	printf("int[] arr = new int[]{");
	for(i=9;i>=0;i--)
	{
		if(a[i]>=0)
		{
			b[j++]=i;//将号码从大到小重新排列,放入新数组中 
			k++;
		}
	}
	for(i=0;i<k;i++) 
	{
			printf("%d",b[i]);
			if(i<k-1) printf(",");//格式,末尾不带逗号 
	}
	printf("};\nint[] index = new int[]{");
	for(j=0;j<11;j++)
	{
		for(i=0;i<10;i++)
		{
			if(phone[j]==b[i])//判断号码数在新数组的位置 
			{
				printf("%d",i);
				break;
			}
		}
		if(j<10) printf(",");
		else 	printf("};");
	}
	return 0;
}

 Left-pad

#include <bits/stdc++.h>
using namespace std;
char a[100000];///数组来储存字符
int main()
{
        int n;
        char c;
        cin>>n;///个数
        getchar();///吃回车
        cin>>c;
        getchar();
        cin.get(a,100000);///c11 标准中个gtes函数已经删除 所以用了cin.get
        int len=strlen(a);
        if(len>=n)
        {
            for(int i=len-n; a[i]; i++)
            {
                cout<<a[i];
            }
        }
        else
        {
            for(int i=0; i<n-len; i++)///字符补齐
            {
                cout<<c;
            }
            cout<<a<<endl;
        }


    return 0;
}

 点赞

#include<stdio.h>
int Character[1001];
int main()
{
	int N;
	scanf("%d",&N);
	while(N--)
	{
		int n;
		scanf("%d",&n);
		while(n--)
		{
		   int id;
		   scanf("%d",&id);
		   Character[id]++;
		}
	}
	int max=0;
	for(int i=0;i<1001;i++)
	{
		if(Character[i]>max)
			max=Character[i];
	}
	int maxid=0;
    for(int i=0;i<1001;i++)
	{
		if(Character[i]==max)
		{
			if(i>maxid)
			 maxid=i;
		}
	}	
	printf("%d %d",maxid,max);
	return 0;
}

 古风排版

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,k;
    string s;
    cin>>n;
    getchar();
    getline(cin,s);
    if(s.size()%n==0)k=s.size()/n;
    else k=s.size()/n+1;
    for(int i=s.size();i<n*k;i++){
        s=s+" ";
    }
    // cout<<s;通过这里可以检验你的字符串有没有达到预想效果;
    for(int i=0;i<n;i++){
        for(int j=s.size()-1;j>=0;j--){
            if(j%n==i)cout<<s[j];
        }
        cout<<endl;
    }
    return 0;
}

 阅览室


#include<stdio.h>
 
int main()
{
    int i=1,n;
    scanf("%d",&n);
    int se[1001]={0};//se[]用来自动忽略这种无效纪录
    char op;
    int book,hour,min;
    int sum=0,sumtime=0;
    int hour1[1001]={0},min1[1001]={0};//用于此次书号借的时间
    int hour2[1001]={0},min2[1001]={0};//用于此次书号还的时间
//其实可以不用那么多数组,但是当时脑子短路了,就这么着吧
    while(i<=n)//因为没说过到底有几条所以还是用while好一些
    {
        
        scanf("%d %c %d:%d",&book,&op,&hour,&min);
        if(book==0) //一天的结束
        {
            i++;
            if(sum!=0)
            {
                printf("%d %.0f\n",sum,1.0*sumtime/sum);
            }
            else if(sum==0) printf("0 0\n");//万一没人借书,除0就变成了段错误。
            sum=0;
            sumtime=0;//每次的人数和时间重置
            continue;
        }
        if(op=='S')
        {
            hour1[book]=hour;
            min1[book]=min;
            se[book]=1;
        }
        if(se[book]==1&&op=='E')
        {
            hour2[book]=hour;
            min2[book]=min;
            se[book]=0;
            sum++;
            sumtime+=(hour2[book]-hour1[book])*60+min2[book]-min1[book];
//他要求都是分钟那就都用分钟来算
        }
 
    }
}

整除光棍

#include<stdio.h>
int main()
{
    int x = 0;
    scanf("%d",&x);
    int n = 1;
    int count = 1;
 
    while(n<x)
    {
        n=n*10+1;
        count++;
    }
 
    while(1)
    {
        printf("%d",n/x);
        n=n%x;
        if(n==0)
        {
            break;
        }
        else
        {
            n=n*10+1;
            count++;
        }
    }
 
    printf(" %d",count);
    return 0;
}

矩阵A乘以B

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x,y,s;
    cin>>x>>y;
    int a[x][y];
    for(int i=0;i<x;i++)
        for(int j=0;j<y;j++)
            cin>>a[i][j];
    int m,n;
    cin>>m>>n;
    int b[m][n];
    int c[x][n];
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            cin>>b[i][j];
    if(y!=m)cout<<"Error: "<<y<<" != "<<m;
    else {
        for(int i=0;i<x;i++){
            for(int j=0;j<n;j++){
                s=0;
                for(int k=0;k<y;k++){
                    s=s+a[i][k]*b[k][j];
                }
                c[i][j]=s;
            }
        }
        cout<<x<<" "<<n<<endl;
        for(int i=0;i<x;i++){
            for(int j=0;j<n;j++){
                if(j!=0)cout<<" ";
                cout<<c[i][j];
            }
            cout<<"\n";
        }
    }
    return 0;
}

 天梯赛座位分配

#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int num[101] = { 0 };
    int i = 0;
    int max = 0;
    int id = 0;
    int pos[101][11][11] = { 0 };
    int pre = 0;
 
    //输入各高校队伍数并求出最大的队伍数
    for (i = 1; i <= n; i++)
    {
        scanf("%d", &num[i]);
        max = num[i] > max ? num[i] : max;
    }
 
    //编号
    int j = 0;
    for (j = 1; j <= max; j++)
    {
        int k = 0;
        for (k = 1; k <= 10; k++)
        {
            for (i = 1; i <= n; i++)
            {
                if (j <= num[i])
                {
                    //同一个学校隔位坐
                    if (pre == i)
                    {
                        id += 2;
                    }
                    else
                    {
                        //不同学校正常坐
                        id += 1;
                    }
                    pre = i;
                    pos[i][j][k] = id;
                }
            }
        }
    }
 
    //打印编号信息
    for (i = 1; i <= n; i++)
    {
        printf("#%d\n", i);
        for (j = 1; j <= num[i]; j++)
        {
            int k = 0;
            for (k = 1; k <= 10; k++)
            {
                if (k != 10)
                {
                    printf("%d ", pos[i][j][k]);
                }
                else
                {
                    printf("%d\n", pos[i][j][k]);
                }
            }
 
        }
    }
    return 0;
}

 倒数第N个字符串

#include<stdio.h>
#include<math.h>
int main()
{
    int l = 0;
    int n = 0;
    scanf("%d %d",&l,&n);
    int m = pow(26,l)-n;
    int i = 0;
    int arr[10]={0};
    for(i=0;i<l;i++)
    {
        arr[i]=m%26;
        m/=26;
    }
    for(i=l-1;i>=0;i--)
    {
        printf("%c",'a'+arr[i]);
    }
    return 0;
}

 猜数字

#include<bits/stdc++.h>
using namespace std;
struct xx{
    string a;
    int b; 
}s[10005];
int main(){
     int n,i,c=0,y=100;string x;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>s[i].a>>s[i].b;
        c+=s[i].b;
    }
    c/=(2*n);
    for(i=0;i<n;i++){
        if(abs(s[i].b-c)<y){y=abs(s[i].b-c);x=s[i].a;}
    }cout<<c<<' '<<x;
    return 0;
}

 6翻了

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	getline(cin,s);
	for(int i=0;s[i];i++)
	{
		if(s[i]!='6') cout<<s[i];
		else
		{
			int t=0,j;
			for(j=i;s[j];j++)
			{
				if(s[j]=='6') t++;
				else break;
			}
			if(t<=3) {
				cout<<s[i];
				continue;
			}
			else if(t>3&&t<=9) cout<<"9";
			else if(t>9) cout<<"27";
			i=j-1;
		}
	}
    return 0;
}

 估值一亿的AI核心代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    string s;
    cin>>n;
    getchar();
    while(getline(cin,s)){
        cout<<s<<endl<<"AI: ";
        s=regex_replace(s,regex(R"(\s+)")," ");
        s=regex_replace(s,regex(R"(^\s+|\s+$|\s+(?=\W))"),"");
        s=regex_replace(s,regex(R"(\bI\b)"),"mark_mark");
        for(int i=0;i<s.size();i++)
            if(s[i]!='I')s[i]=tolower(s[i]);
        s=regex_replace(s,regex(R"(\bcan you\b)"),"I can");
        s=regex_replace(s,regex(R"(\bcould you\b)"),"I could");
        s=regex_replace(s,regex(R"(mark_mark|\bme\b)"),"you");
        s=regex_replace(s,regex(R"(\?)"),"!");
        cout<<s<<endl;
    }
    return 0;
}

 胎压监测

#include<stdio.h>
int main()
{
	int a[4],min,yu,max=0,flag1=0,flag2=0,temp1=0,temp2=0;
	for(int i=0;i<4;i++){
		scanf("%d",&a[i]);
	}
	scanf("%d %d",&min,&yu);
	for(int i=0;i<4;i++){
		if(max<a[i]){
		max=a[i];
		}//取最大值
	}
	for(int i=0;i<4;i++){
		if(max-a[i]>yu){
			flag1++;//判断差值是否在范围内
		}
		if(flag1==1){
			temp1=i+1;//只有一个轮胎阈值不符
			flag1=2;//跳出
		}
	}
	for(int i=0;i<4;i++){
		if(a[i]<min){
			flag2++;//判断轮胎是否低于最小值
		}
		if(flag2==1){
			temp2=i+1;//只有一个轮胎低于最小值
			flag2=2;//跳出
		}
	}
	if(flag1==0&&flag2==0){
		printf("Normal");
	}else if(flag1==2&&flag2==0){
		printf("Warning: please check #%d!",temp1);
	}else if(flag2==2&&flag1==0){
		printf("Warning: please check #%d!",temp2);
	}else if(flag2==2&&flag1==2&&temp2==temp1){
		printf("Warning: please check #%d!",temp2);
	}else if(flag1>2||flag2>2){
		printf("Warning: please check all the tires!");
	}
	return 0;
}

 前世档案

#include<bits/stdc++.h>
using namespace std;
int main(){
           int n,m,x,i,y,z;string b;
    cin>>n>>m;
    x=pow(2,n);
    while(m--)
   {
    cin>>b;
        z=1;y=x;
        for(i=0;i<b.size();i++){
            if(b[i]=='n'){z+=(y/2);}
            y/=2;
        }
        cout<<z<<endl;
    }
    return 0;
}   

 刮刮彩票

#include<bits/stdc++.h>
using namespace std;
int main(){
    int i,j,x,y,z,a[5][5],x1,y1,c[10]={0},d=0;
    int b[20]={10000,36,720,360,80,252,108,72,54,180,72,180,119,36,306,1080,144,1800,3600};
    for(i=1;i<=3;i++){
        for(j=1;j<=3;j++)
            {cin>>a[i][j];
             c[a[i][j]]=1;
            if(a[i][j]==0){x1=i,y1=j;}
            }
    }
     for(i=1;i<=9;i++)if(c[i]==0)a[x1][y1]=i;
     for(i=1;i<=3;i++){
         cin>>x>>y;
         cout<<a[x][y]<<endl;
     }cin>>z;
    if(z==1)d=a[1][1]+a[1][2]+a[1][3];
    if(z==2)d=a[2][1]+a[2][2]+a[2][3];
    if(z==3)d=a[3][1]+a[3][2]+a[3][3];
    if(z==4)d=a[1][1]+a[2][1]+a[3][1];
    if(z==5)d=a[1][2]+a[2][2]+a[3][2];
    if(z==6)d=a[1][3]+a[2][3]+a[3][3];
    if(z==7)d=a[1][1]+a[2][2]+a[3][3];
    if(z==8)d=a[3][1]+a[2][2]+a[1][3];
    cout<<b[d-6];
    return 0;
}  

吉老师的回归

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    string s;
    getchar();
    for(int i=0;i<n;i++){
        getline(cin,s);
        if(s.find("qiandao")!=-1||s.find("easy")!=-1);
            else {m--;}
        if(m==-1){cout<<s;break;}
    }
    if(m>=0)cout<<"Wo AK le";
    return 0;
}

 乘法口诀数列

#include<bits/stdc++.h>
using namespace std;
int main(){
       int a,b,n,i=0,x;string s;
    cin>>a>>b>>n;
    x=n;
s+=to_string(a);s+=to_string(b);
    while(n--){
        s+=to_string((s[i]-'0')*(s[i+1]-'0'));
        i++;
    }
    for(int j=0;j<x;j++){
        if(j)cout<<' ';
        cout<<s[j];
    }
    return 0;
}

 机工士姆斯塔迪奥

#include <iostream>
#include <cstring>
#include <algorithm>
 
using namespace std;
 
const int N = 1000010;
int st[N];
 
 
int main()
{
    int n, m, t;
    cin >> n >> m >> t;
    for (int i = 1; i <= n * m; i ++ )  st[i] = true;
    while(t -- )
    {
        int a, b;
        cin >> a >> b;
        if (a == 0)
            for (int i = (b - 1) * m + 1, j = 1; j <= m; j ++, i ++)  st[i] = false;
        else    
            for (int i = b, j = 1; j <= n; j ++, i += m)    st[i] = false;
    }
    int cnt = 0;
    for (int i = 1; i <= n * m; i ++ )  
        if (st[i])  cnt ++;
    
    cout << cnt << endl;
    return 0;
}

静静的推荐

#include<iostream>
using namespace std;

int main() {
	int N, K, S; cin >> N >> K >> S;
	// mp记录当前0~290分的人数,如果大于了K就不能继续增加
	// 原因:1. 同一批推荐名单上的学生的成绩原则上应严格递增
	//  	 2 .一共接受 K 批次的推荐名单
	// 所以同一分数的(不含特殊情况(参加过 PAT 考试且且成绩达到了该企业的面试分数线))
	// 因为递增,所以不能为同一批且最大批次为K 
	int cnt = 0, mp[291] = {0};
	for(int i=0; i<N; i++) {
		int tts, pat; cin >> tts >> pat;
		// 1. 只考虑得分不低于 175 分的学生;
		if(tts < 175) continue;
		if(pat >= S) cnt++;
		else if(mp[tts] < K) cnt++, mp[tts]++;
	}
	cout << cnt << endl;
	return 0;
}

判断题

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m,c,sum=0;
    cin>>n>>m;
    int a[m],b[m];
    for(int i=0;i<m;i++)
        cin>>a[i];
    for(int i=0;i<m;i++)
        cin>>b[i];
    for(int i=0;i<n;i++){
        sum=0;
        for(int j=0;j<m;j++){
            cin>>c;
            if(c==b[j])sum=sum+a[j];
        }
        cout<<sum<<endl;;
    }
    return 0;
}

 谷歌的招聘

#include <bits/stdc++.h>
using namespace std;
 
bool isprime(int n)
{
	if(n<=1)
	{
		return false;
	}
	for(int i=2;i*i<=n;i++)
	{
		if(n%i==0)
		{
			return false;
		}
	}
	return true;
}
 
int main()
{
	int n,m;
	string str;
	scanf("%d %d",&n,&m);
	cin>>str;
	for(int i=0;i<=n-m;i++)
	{
		string t=str.substr(i,m);
		int num=stoi(t);
		if(isprime(num))
		{
			cout<<t<<endl;return 0;
		}
	}
	cout<<"404"<<endl;
	return 0;
}

 编程团体赛

#include <iostream>
using namespace std;
int main() {
    int n, t, num, score;
    cin >> n;
    int team[1001] = {0};
    for (int i = 1; i <= n; i++) {
        scanf("%d-%d %d", &t, &num, &score);
        team[t] += score;
    }
    int max = 0;
    for (int i = 0; i < 1001; i++) {
        if (team[max] < team[i])
            max = i;
    }
    cout << max << " " << team[max];
    return 0;
}

不变初心数

#include<bits/stdc++.h>
using namespace std;
int jie(int x){
    int sum1=0;
    do{
        sum1=sum1+x%10;
        x=x/10;
    }
    while(x);
        return sum1;
}
int main()
{
    int n;
    int sum=0,y=0,b,x,i,z;
    cin>>n;
    while(n--){
        sum=0;
        y=0;
        b=0;
        z=0;
        cin>>x;
        sum=jie(x);
        for(i=2;i<=9;i++){
            y=i*x;
            if(sum!=jie(y)){z=1;
            break;}
        }
        if(z==1)cout<<"NO\n";
        else cout<<sum<<endl;
    }
    return 0;
}

 字母串

#include<bits/stdc++.h>
using namespace std;
int main(){
     int n,x=0,i;string s;
    cin>>n;
    getchar();
    while(n--){
        x=0;
        getline(cin,s);
        for( i=0;i<s.size()-1;i++){
          if((s[i]>='a'&&s[i]<='z'&&s[i+1]==s[i]-32)||(s[i]>'a'&&s[i]<='z'&&s[i+1]==s[i]-1))continue;
            else if((s[i]>='A'&&s[i]<='Z'&&s[i+1]==s[i]+32)||(s[i]>='A'&&s[i]<'Z'&&s[i+1]==s[i]+1))continue;
            else {x=1;break;}
        }
        if(x)cout<<"N\n";
        else cout<<"Y\n";
    }
    return 0;
}

 矩阵列平移

#include<stdio.h>
int main()
{
	int n,m,k,i,j,p=1,a[100][100],sum=0;
	scanf("%d %d %d",&n,&m,&k);
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);		
	for(i=n-1;i>=0;i--)    //从最后一行开始 
	{
		p=1;
		for(j=0;j<n;j++)
		{
			if((j+1)%2==0)   //偶数列 
			{
				if(i-p>=0)            //判断 a数组中 以i-p为下标的元素是否存在 
					a[i][j]=a[i-p][j];      //存在 向下移p个单位 
				else                    //不存在 添k 
					a[i][j]=k;
				p++;          //移动的单位是1、2...p 接着 1、2...p
				if((p>m))     //如果数组大 或者m的值小 p接着从1开始 
					p=1; 
			}	
		}
	}	
	for(i=0;i<n;i++)            //求每一列的和 
	{
		for(j=0;j<n;j++)  
			sum+=a[i][j];
		if(i<n-1)              //控制空格 
			printf("%d ",sum);
		else
			printf("%d",sum);
		sum=0;
	}
	return 0;	
} 

 均是素数

#include<stdio.h>
 
int isPrime(int n)
{
    if(n<2) return 0;
    for(int i=2;i*i<=n;i++)
    {
        if(n%i==0) return 0;
    }
    return 1;
}
 
int main()
{
    int m,n,sum=0;
    scanf("%d %d",&m,&n);
    int a[1000],t=0;
    for(int i=m;i<=n;i++)
    {
        if(isPrime(i)) a[t++] = i;
    }
    for(int i=0;i<t;i++)
    {
        for(int j=i+1;j<t;j++)
        {
            for(int k=j+1;k<t;k++)
            {
                int p,q,r;
                p = a[i]*a[j]+a[k];
                q = a[i]*a[k]+a[j];
                r = a[j]*a[k]+a[i];
                if(isPrime(p)&&isPrime(q)&&isPrime(r))
                {
                     sum++;
                }
            }
        }
    }
    printf("%d",sum);
}

 随机输一次

#include<iostream>
using namespace std;
int num[11];
int main(){
	int a;
	cin>>a;
	for(int i=0;i<a;i++){
		cin>>num[i];
	}
	string s;
	cin>>s;
	int i=0;
	int j=0;
	while(s!="End"){
		if(j<num[i]){
			if(s=="ChuiZi"){
				cout<<"Bu"<<endl;
			}else if(s=="JianDao"){
				cout<<"ChuiZi"<<endl;
			}else if(s=="Bu"){
				cout<<"JianDao"<<endl;
			}
		}else{
			j=-1;
			i++;
			i=i%a;
			if(s=="ChuiZi"){
				cout<<"JianDao"<<endl;
			}else if(s=="JianDao"){
				cout<<"Bu"<<endl;
			}else if(s=="Bu"){
				cout<<"ChuiZi"<<endl;
			}
		}
		j++;
		
		
		cin>>s;
	}
 
	return 0;
	} 

 念数字

#include <stdio.h>
#include <string.h>
int main() 
{
    //定义一个10行5列的二维数组。
    char num[10][5]= {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
    char a[1005];
    scanf("%s",a);
    if( a[0]=='-')
        printf("fu");
    else
        printf("%s", num[a[0] - '0']);   //以字符串的形式输出二维数组的一整行
    for(int i=1;i<strlen(a);i++)
        printf(" %s", num[a[i] - '0']);  
     printf("\n");
    return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值