团体程序设计天梯赛-练习集(1-30)

目录

  • Hello world
  • 打印沙漏
  • 个位数统计
  • 计算摄氏温度
  • 考试座位号
  • 连续因子
  • 念数字
  • 求整数段和
  • N个数求和
  • 比较大小
  • A-B
  • 计算指数
  • 计算阶乘和
  • 简单题
  • 跟奥巴马一起画方块
  • 查验身份证
  • 到底有多二
  • 大笨钟
  • 谁先倒
  • 帅到没朋友
  • 重要的话说三遍
  • 奇偶分家
  • 输出GPLT
  • 后天
  • 正整数A+B
  • I LOVE GPLT
  • 出租
  • 判断素数
  • 是不是太胖了
  • 一帮一

自己写的,有很多写的很繁琐的地方,还望佬见谅。

Hello world

团体程序设计天梯赛-练习集(1-30)_第1张图片

#include 
int main()
{
    printf("Hello World!");
    return 0;
}

打印沙漏

团体程序设计天梯赛-练习集(1-30)_第2张图片

#include 

int main()
{
    int N=0;
    char ch;
    scanf("%d %c",&N,&ch);
    int n=N;
    int i=1;
    int j=3;
    int count=0;
    if(N<7)
    {
        printf("%c\n",ch);
        printf("%d",N-1);
        return 0;
    }
    while(n-i>0)
    {
        n-=i;
        i=j*2;
        j+=2;
        count++;
    }
    //count排倒三角
    int len=2*count-1;
    for(int i=0;i<count;i++)
    {
        for(int j=0;j<i;j++)
        {
            printf(" ");
        }
        for(int j=0;j<len-2*i;j++)
        {
            printf("%c",ch);
        }
        printf("\n");
    }
    //count-1行正三角
    for(int i=1;i<count;i++)
    {
        for(int j=0;j<(len-(i*2+1))/2;j++)
        {
            printf(" ");
        }
        for(int j=0;j<i*2+1;j++)
        {
            printf("%c",ch);
        }
        printf("\n");
    }
    printf("%d",n);
    return 0;
}

个位数统计

团体程序设计天梯赛-练习集(1-30)_第3张图片

#include 
#include 
#include 
int main()
{
    char s[1000];
    scanf("%s",&s);
    int a[10]={0,0,0,0,0,0,0,0,0,0};
    for(int i=0;i<strlen(s);i++)
    {
        switch(s[i])
        {
            case '0':
                a[0]++;
                break;
            case '1':
                a[1]++;
                break;
            case '2':
                a[2]++;
                break;
            case '3':
                a[3]++;
                break;
            case '4':
                a[4]++;
                break;
            case '5':
                a[5]++;
                break;
            case '6':
                a[6]++;
                break;
            case '7':
                a[7]++;
                break;
            case '8':
                a[8]++;
                break;
            case '9':
                a[9]++;
                break;
        }
    }
    
    for(int i=0;i<10;i++)
    {
        if(a[i]>0)
        {
             printf("%d:%d\n",i,a[i]);
        }
      
    }
    return 0;
}

计算摄氏温度

团体程序设计天梯赛-练习集(1-30)_第4张图片

#include 

int main()
{
    int a=0;
    scanf("%d",&a);
    printf("Celsius = %d",5*(a-32)/9);
    return 0;
}

考试座位号

团体程序设计天梯赛-练习集(1-30)_第5张图片

#include 

struct Stu
{
    char a[20];
    int b;
    int c;
};
int search_stu(int x,int N,struct Stu* s)
{
    for(int i=0;i<N;i++)
    {
        if(s[i]->b==x)
        {
            return i;
        }
    }
    return 0;
}
int main()
{
    int N=0;
    scanf("%d",&N);
    struct Stu s[N];
    for(int i=0;i<N;i++)
    {
        scanf("%s %d %d",s[i].a,&(s[i].b),&(s[i].c));
    }
    int num=0;
    scanf("%d",&num);
    int arr[num];
    for(int j=0;j<num;j++)
    {
        scanf("%d",&arr[j]);
    }
    for(int j=0;j<num;j++)
    {
        int k=search_stu(arr[j],N,&s);
        printf("%s %d\n",s[k].a,s[k].c);
    }
    return 0;
}

连续因子

团体程序设计天梯赛-练习集(1-30)_第6张图片

#include 
#include 

int prime(int n)
{
    int i=0;
    for(i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    long long n,i,j;
    scanf("%lld",&n);
    int start=0,l=0;
    long long s=1;
    if(prime(n))
        printf("1\n%d\n",n);
    else{
        for(i=2;i<sqrt(n);i++)
        {
            s=1;
            for(j=i;s*j<=n;j++)
            {
                s*=j;
                if(n%s==0&&j-i+1>l)
                {
                    start=i;
                    l=j-i+1;
                }
            }
        }
        printf("%d\n",l);
    for(i=start;i<start+l;i++)
    {
        if(i==start)
        {
            printf("%lld",i);
        }
        else
        {
            printf("*%lld",i);
        }
    }
    }
   
    return 0;
}

念数字

团体程序设计天梯赛-练习集(1-30)_第7张图片

#include 
#include 
#include 

int main()
{
    int n=0;
    scanf("%d",&n);
    
    int count=0;
    int input=0;
    if(n==0)
    {
        printf("ling");
    }
    if(n<0)
    {
        printf("fu ");
        n/=-1;
    }
    
    int N=n;
    while(n>0)
    {
        count++;
        n/=10;
    }
    while(count--)
    {
        input=N/(int)(pow(10,count));
        N%=(int)(pow(10,count));
        switch(input)
    {
        case 0: printf("ling"); break;
        case 1: printf("yi"); break;
        case 2: printf("er"); break;
        case 3: printf("san"); break;
        case 4: printf("si"); break;
        case 5: printf("wu"); break;
        case 6: printf("liu"); break;
        case 7: printf("qi"); break;
        case 8: printf("ba"); break;
        case 9: printf("jiu"); break;
    }
        if(count)
        {
            printf(" ");
        }
    }
    return 0;
}

求整数段和

团体程序设计天梯赛-练习集(1-30)_第8张图片

#include 

int main()
{
    int A=0;
    int B=0;
    scanf("%d %d",&A,&B);
    int sz=B-A;
    int arr[40][5]={0};
    
    int n=A;
    int m=A;
    int l=A;
    int sum=0;
    for(int i=0;i<=sz;i++)
    {
        sum+=n;
        n++;
    }
        for(int j=0;j<=sz/5;j++)
        {
            for(int k=0;k<5;k++)
            {
                if(m<=B)
                arr[j][k]=m;
                m++;
            }
        }
        for(int j=0;j<=sz/5;j++)
        {
            for(int k=0;k<5;k++)
            {
                if(l<=B)
                printf("%5d",arr[j][k]);
                l++;
            }
            printf("\n");
        }
    printf("Sum = %d",sum);
    return 0;
}

N个数求和

团体程序设计天梯赛-练习集(1-30)_第9张图片

#include
#include 
int M(int a,int b)
{
    if(b==0)
        return a;
    else
        return M(b,a%b);
}
int main(void) {
	int n, sum = 0;
	int a, b;
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i) {
		int a1, b1;
		scanf("%d/%d", &a1, &b1);
		sum += a1 / b1;
		a1 = a1 % b1;
		if (i == 1) {
			a = a1, b = b1;
		} else {
			int m = b * b1 / M(b, b1);
			a = a * (m / b) + a1 * (m / b1);
			b = m;
			sum += a / b;
			a = a % b;
		}
		while (1) {
			int l = M(a, b);
			if (l == 1) {
				break;
			}
			a /= l;
			b /= l;
		}
	}
	if (sum == 0) {
		if (a == 0) {
			printf("0\n");
		} else {
			printf("%d/%d", a, b);
		}
	} else {
		printf("%d", sum);
		if (a == 0) {
			printf("\n");
		} else {
			printf(" %d/%d", a, b);
		}
	}
	return 0;
}

比较大小

团体程序设计天梯赛-练习集(1-30)_第10张图片

#include 


int cmp_int(const void* p1,const void* p2)
{
    return *(int*)p1-*(int*)p2;
}
int main()
{
    int arr[3]={0};
    for(int i=0;i<3;i++)
    {
        scanf("%d",&arr[i]);
    }
    
    qsort(arr,3,sizeof(arr[0]),cmp_int);
    
    for(int i=0;i<3;i++)
    {
        if(i<2)
        {
            printf("%d->",arr[i]);
        }
        else
        {
            printf("%d",arr[i]);
        }
    }
    return 0;
}

A-B

团体程序设计天梯赛-练习集(1-30)_第11张图片

#include 
#include 
int main()
{
    char a[100001];
    char b[100001];
    gets(a);
    gets(b);
    int c[128];
    int i,j,k;
    for(i=0;i<128;i++)
    {
        c[i]=0;
    }
    for(j=0;j<strlen(b);j++)
    {
        c[(int)b[j]]=1;
    }
    for(k=0;k<strlen(a);k++)
    {
        if(c[(int)a[k]]==0)
        {
            printf("%c",a[k]);
        }
    }
    printf("\n");
    return 0;
}

计算指数

团体程序设计天梯赛-练习集(1-30)_第12张图片

#include 
#include 
int main()
{
    int n=0;
    scanf("%d",&n);
    printf("2^%d = %d",n,(int)pow(2,n));
    return 0;
}

计算阶乘和

团体程序设计天梯赛-练习集(1-30)_第13张图片

#include 
int Factorial(int n)
{
    if(n==1)
    {
        return 1;
    }
    else{
        return n*Factorial(n-1);
    }
}
int main()
{
    int N=0;
    scanf("%d",&N);
    int sum=0;
    for(int i=1;i<=N;i++)
    {
        sum+=Factorial(i);
    }
    printf("%d",sum);
    return 0;
}

简单题

团体程序设计天梯赛-练习集(1-30)_第14张图片

#include 

int main()
{
    printf("This is a simple problem.");
    return 0;
}

跟奥巴马一起画方块

团体程序设计天梯赛-练习集(1-30)_第15张图片

#include 

int main()
{
    int N=0;
    char ch;
    scanf("%d %c",&N,&ch);
    int n=0;
    if(N%2==0)
    {
        n=N/2;
    }
    else if(N%2!=0)
    {
        n=N/2+1;
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<N;j++)
        {
            printf("%c",ch);
        }
        printf("\n");
    }
    return 0;
}

查验身份证

团体程序设计天梯赛-练习集(1-30)_第16张图片

#include 
#include 
#include 
int main()
{
    char x[11]={'1','0','X','9','8','7','6','5','4','3','2'};
    int weight[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    int N=0;
    int j=0;
    int m=0;
    int i=0;
    char arr[100][19]={0};
    char b[100][19]={0};
    scanf("%d",&N);
    getchar();
    for(int i=0;i<N;i++)
    {
        gets(arr[i]);
        for(j=0;j<17;j++)
        {
            if(arr[i][j]>'9'||arr[i][j]<'0')
            {
                break;
            }
        }
        if(j==17)
        {
            int sum=0;
            for(int x=0;x<17;x++)
            {
                sum+=(arr[i][x]-'0')*weight[x];
            }
            int k=sum%11;
            if(arr[i][17]!=x[k])
            {
                strcpy(b[m++],arr[i]);
            }
        }
        else{
            strcpy(b[m++],arr[i]);
        }
    }
    if(m==0)
    {
        printf("All passed\n");
    }
    else{
        for(i=0;i<m;i++)
        {
            printf("%s\n",b[i]);
        }
    }
    return 0;
}

到底有多二

团体程序设计天梯赛-练习集(1-30)_第17张图片

#include 
#include 

int main()
{
   char s[55]={0};
    char ch;
    int j=0;
    while((ch=getchar())!='\n')
    {
        s[j]=ch;
        j++;
    }
    int sz=strlen(s);
    double k=1;
    int count=0;
    if(s[0]=='-')
    {
        k*=(double)1.5;
    }
    if(s[sz-1]%2==0)
    {
        k*=(double)2;
    }
    for(int i=0;i<sz;i++)
    {
        if(s[i]-'0'==2)
        {
            count++;
        }
    }
    
    if(s[0]=='-')
    {
         k=k*(double)count/(double)(sz-1);

    }
  
    
    else
    {
        k=k*(double)count/(double)sz;

    }
        
    printf("%.2lf%%",k*(double)100);
    return 0;
}

大笨钟

团体程序设计天梯赛-练习集(1-30)_第18张图片

#include 

int main()
{
    int arr[2]={0};
    scanf("%d:%d",&arr[0],&arr[1]);
    if(arr[0]>=0&&arr[0]<12)
    {
        if(arr[0]>=0&&arr[0]<10)
        {
            if(arr[1]>=0&&arr[1]<10)
            {
                printf("Only 0%d:0%d.  Too early to Dang.",arr[0],arr[1]);
            }
            else if(arr[1]>=10&&arr[1]<=59)
            {
                printf("Only 0%d:%d.  Too early to Dang.",arr[0],arr[1]);
            }
        }
        else if(arr[0]>=10&&arr[0]<=11)
        {
            if(arr[1]>=0&&arr[1]<10)
            {
                printf("Only %d:0%d.  Too early to Dang.",arr[0],arr[1]);
            }
            else if(arr[1]>=10&&arr[1]<=59)
            {
                printf("Only %d:%d.  Too early to Dang.",arr[0],arr[1]);
            }
        }
    }
    if(arr[0]==12)
    {
        if(arr[1]==0)
        {
            printf("Only %d:0%d.  Too early to Dang.",arr[0],arr[1]);
        }
        else
        {
            printf("Dang");
        }
    }
    else if(arr[0]>=12&&arr[0]<=23)
    {
        if(arr[1]==0)
        {
            for(int i=0;i<arr[0]-12;i++)
            {
                printf("Dang");
            }
            
        }
        else
        {
            for(int i=0;i<arr[0]-11;i++)
            {
                printf("Dang");
            }
            
        }
    }
    return 0;
}

谁先倒

团体程序设计天梯赛-练习集(1-30)_第19张图片

#include 

int main()
{
    int a=0;//甲的极限
    int b=0;//乙的极限
    int num=0;
    scanf("%d %d",&a,&b);
    scanf("%d",&num);
    int arr[100][4]={0};
    int m=0;//甲喝的杯数
    int n=0;//乙喝的杯数
    for(int i=0;i<num;i++)
    {
        scanf("%d %d %d %d",&arr[i][0],&arr[i][1],&arr[i][2],&arr[i][3]);
    }
    for(int i=0;i<num;i++)
    {
        if(arr[i][0]+arr[i][2]==arr[i][1]&&arr[i][0]+arr[i][2]!=arr[i][3])
        {
            m++;
        }
        else if(arr[i][0]+arr[i][2]==arr[i][3]&&arr[i][0]+arr[i][2]!=arr[i][1])
        {
            n++;
        }
        if(m>a)
        {
            printf("A\n");
            printf("%d",n);
            break;
        }
        if(n>b)
        {
            printf("B\n");
            printf("%d",m);
            break;
        }
    }
    return 0;
}

帅到没朋友

团体程序设计天梯赛-练习集(1-30)_第20张图片

#include 
int main()
{
    int id[100000]={0};
    int n,m;
    scanf("%d",&n);
    for(int i = 0;i<n;i++)
    {
        scanf("%d",&m);
        int num = 0;
        for(int j = 0;j<m;j++)
        {
            if(m!=1)
            {
                scanf("%d",&num);
                id[num] = 1;
            }
            else
                scanf("%d",&num);
        }
    }
    int flag = 0,consult = 0;
    scanf("%d",&m);
    for(int i = 0;i<m;i++)
    {
        scanf("%d",&consult);
        if(id[consult]==0)
        {
            if(flag)
                printf(" ");
            printf("%05d",consult);
            id[consult] = 1;
            flag = 1;
        }
    }
    if(flag==0)
        printf("No one is handsome\n");
    return 0;
}

重要的话说三遍

团体程序设计天梯赛-练习集(1-30)_第21张图片

#include 

int main()
{
    printf("I'm gonna WIN!\n");
    printf("I'm gonna WIN!\n");
    printf("I'm gonna WIN!\n");
    return 0;
}

奇偶分家

团体程序设计天梯赛-练习集(1-30)_第22张图片


int main()
{
    int N=0;
    scanf("%d",&N);
    int arr[1000]={0};
    int a=0;
    int b=0;
    
    for(int i=0;i<N;i++)
    {
        scanf("%d",&arr[i]);
        if(arr[i]%2!=0)
        {
            a++;
        }
        else if(arr[i]%2==0)
        {
            b++;
        }
    }
    
    printf("%d %d",a,b);
    return 0;
}

输出GPLT

团体程序设计天梯赛-练习集(1-30)_第23张图片

#include 

int main()
{
    char s[10000]={0};
    char ch;
    int i=0;
    while((ch=getchar())!='\n')
    {
        s[i]=ch;
        i++;
    }
    int arr[4]={0,0,0,0};
    for(int j=0;j<i;j++)
    {
        if(s[j]=='G'||s[j]=='g')
        {
            arr[0]++;
        }
        if(s[j]=='P'||s[j]=='p')
        {
            arr[1]++;
        }
        if(s[j]=='L'||s[j]=='l')
        {
            arr[2]++;
        }
        if(s[j]=='T'||s[j]=='t')
        {
            arr[3]++;
        }
    }
    while(arr[0]>0||arr[1]>0||arr[2]>0||arr[3]>0)
    {
        if(arr[0]>0)
        {
            printf("G");
            arr[0]--;
        }
        if(arr[1]>0)
        {
            printf("P");
            arr[1]--;
        }
        if(arr[2]>0)
        {
            printf("L");
            arr[2]--;
        }
        if(arr[3]>0)
        {
            printf("T");
            arr[3]--;
        }
    }
    return 0;
}

后天

团体程序设计天梯赛-练习集(1-30)_第24张图片

#include 

int main()
{
    int n=0;
    scanf("%d",&n);
    int k=n+2;
    if(k>7)
    {
        printf("%d",k-7);
    }
    else
    {
        printf("%d",k);
    }
    return 0;
}

正整数A+B

团体程序设计天梯赛-练习集(1-30)_第25张图片

#include 
#include 
int main()
{
	int a=0,b=0,flag=0;
	char ch;
	while((ch=getchar()) != '\n')
	{
		if(!flag)//第一个数字
		{
			if(isdigit(ch) && a!=-1)
				a=a*10+(ch-'0');
			else if(ch == ' ')
				flag=1;
			else
				a=-1;
		}
		else//第二个数字
		{
			if(isdigit(ch) && b!=-1)
				b=b*10+(ch-'0');
			else
				b=-1;
		}
	}
	if(a>1000 || a<1)//a不在范围内
		a=-1;
	if(b>1000 || b<1)//b不在范围内
		b=-1;
	if(a!=-1 && b!=-1)
		printf("%d + %d = %d",a,b,a+b);
	else if(a==-1 && b!=-1)
		printf("? + %d = ?",b);
	else if(a!=-1 && b==-1)
		printf("%d + ? = ?",a);
	else if(a==-1 && b==-1)
		printf("? + ? = ?");
	return 0;
}

I LOVE GPLT

团体程序设计天梯赛-练习集(1-30)_第26张图片

#include 

int main()
{
    printf("I\n \nL\no\nv\ne\n \nG\nP\nL\nT\n");
    return 0;
}

出租

#include 
#include 
// 13880561498
// 0 0 0 0 0 0 0 0 0 0
// -1 -1
// 0 1 2 3
int main()
{
    char s[11]={0};
    char ch;
    int i=0;
    while((ch=getchar())!='\n')
    {
        s[i]=ch;
        i++;
    }
    int hash[10]={0};
    memset(hash,0,40);
    
    for(int j=0;j<i;j++)
    {
        if(hash[s[j]-'0']==0)
        {
            hash[s[j]-'0']=-1;
            
        }
    }
    int k=0;
    int arr[10]={0};
    for(int j=9;j>=0;j--)
    {
        if(hash[j]==-1)
        {
            arr[k]=j;
            k++;
        }
    }
    printf("int[] arr = new int[]{");
    for(int l=0;l<k;l++)
    {
        if(l<k-1)
        printf("%d,",arr[l]);
        else
        printf("%d",arr[l]);
    }
    printf("};");
    //arr [8,3,2,1,0]
    //
    int buf[11]={0};
    int g=0;
    for(int j=0;j<11;j++)
    {
        for(int l=0;l<k;l++)
        {
            if(s[j]-'0'==arr[l])
            {
                buf[g]=l;
                g++;
                break;
            }
        }
    }
    printf("\n");
    printf("int[] index = new int[]{");
    for(int l=0;l<11;l++)
    {
        if(l<10)
        printf("%d,",buf[l]);
        else
        printf("%d",buf[l]);
    }
    printf("};\n");

    return 0;
}

判断素数

团体程序设计天梯赛-练习集(1-30)_第27张图片

#include 
#include 
int judge(int num)
{
    for(int i=2;i<=sqrt(num);i++)
    {
        if(num%i==0)
            return 1;
    }
    return 0;
}
int main()
{
    int n=0;
    scanf("%d",&n);
    int arr[10]={0};

    for(int i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
        if(arr[i]==1)
        {
            printf("No\n");
        }
        else if(judge(arr[i])==1&&arr[i]!=1)
        {
            printf("No\n");
        }
        else if(judge(arr[i])==0&&arr[i]!=1)
        {
            printf("Yes\n");
        }
    }
    
    return 0;
}

是不是太胖了

团体程序设计天梯赛-练习集(1-30)_第28张图片

#include 

int main()
{
    int n=0;
    scanf("%d",&n);
    printf("%.1f",(n-100)*0.9*2);
    return 0;
}

一帮一

团体程序设计天梯赛-练习集(1-30)_第29张图片

#include 
#include 

struct Stu
{
    int sex;
    char name[8];
};
int main()
{
    int n=0;
    scanf("%d",&n);
    struct Stu s[n];
    int m=0;
    char girl[n/2][9];
    int k=0;
    char boy[n/2][9];
    for(int i=0;i<n;i++)
    {
        scanf("%d%s",&(s[i].sex),s[i].name);
        if(s[i].sex==0)
        {
            strcpy(girl[m],s[i].name);
            m++;
        }
        else if(s[i].sex==1)
        {
            strcpy(boy[k],s[i].name);
            k++;
        }
    }
    //girl
    //Amy Cindy Maya Linda
    //0   1     2    3
    //boy
    //Tom Bill John Jack
    //0   1     2    3
    //
    //m=4 n=4
    
    int a=0;
    int b=0;
    for(int i=0;i<n/2;i++)
    {
        if(s[i].sex==0)
        {
            printf("%s %s\n",girl[a],boy[m-1]);
            a++;
            m--;
        }
        else if(s[i].sex==1)
        {
            printf("%s %s\n",boy[b],girl[k-1]);
            b++;
            k--;
        }
    }
    return 0;
}

你可能感兴趣的:(c语言,c++,算法,数据结构)