金橘杯plus 参考例程

发布于 2021-10-04  490 次阅读


A:童童要换女朋友了,,,!

给定一个长度为偶数位的0,1字符串,请编程实现串的相邻奇偶位互换。

#include<stdio.h>
#include<string.h>
int main(){
    int n;
    scanf("%d",&n);
    int j;
    for(j=0;j<n;j++){
        char s[50];
    char k[50];
    scanf("%s",s); 
    int i;
    for (i=0;i<48;i=i+2){
        k[i+1]=s[i];
        k[i]=s[i+1];
    }
    printf("%s\n",k);
    }
    
}

B:童童不会平面几何

给你三角形的三条边,你能告诉我它是哪种三角形吗?
如果是直角三角形,请输出“good”。如果是等腰三角形,请输出“perfect”。否则,请输出“just a triangle”。
题目保证输入数据合法。

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    int i;
    int a,b,c;
    int ans[20];
    for(i=0;i<n;i++){
        scanf("%d%d%d",&a,&b,&c);
        if(a==b||a==c||b==c){
            ans[i]=1;//perfect
        }else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a){
            ans[i]=0;//good 
        }else{
            ans[i]=2;
        } 
    }
    for(i=0;i<n;i++){
        if(ans[i]==1){
            printf("perfect\n");
        }else if(ans[i]==0){
            printf("good\n");
        }else{
            printf("just a triangle\n");
        }
    }
} 

C:今年的第几天?

#include<stdio.h>
#include<string.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    int d[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int ans=0;
    int i=0;
    for (i=0;i<b-1;i++){
        ans=ans+d[i];
    } 
    if(a%400==0||(a%4==0&&a%100!=0)){
        if(b>=3){
            ans++;
        }
    }
    ans=ans+c;
    printf("%d",ans);
}

D:童童守身如玉

#include <stdio.h>

int digit(int n) {
    int ret = 0;
    while (n > 0) {
        n /= 10;
        ++ret;
    }
    return ret; 
} 

int main() {
    int n, square, mask, i,a;
    scanf("%d", &n);
    for(int j=1;j<=n;j++) 
    {
        scanf("%d",&a);
        mask = 1;
        square = a*a;
        for (i = 0; i < digit(a); ++i)
            mask *= 10;
        square %= mask; 
        if (square == a)
            printf("Yes!\n");
        else
            printf("No!\n");
    } 
    return 0;
} 

E:田博出的签到题

#include<stdio.h>
int main(){
    double n;
    scanf("%lf",&n);
    double ans;
    if(n<=-2){
        printf("童照昕该减肥了");
        return ;
    }
    ans=200*1.0/((2+n)*1.0);
    printf("%.4lf",ans);
}

F:童童想看看大家数学能力

#include<stdio.h>
int main()
{
    int a[100][100],i,j,num;
    scanf("%d",&num);
    for(i=0;i<100;i++)                                  //初始化数组
    {
        for(j=0;j<100;j++)
            a[i][j]=0;
    }
    for(i=0;i<num;i++)                                  //使数组的第一列都为1
        a[i][0]=1;
    for(i=1;i<num;i++)                                  //第i行j列元素等于第i-1行j列和第i-1行j-1列元素的和
        for(j=1;j<=i;j++)
            a[i][j]=a[i-1][j]+a[i-1][j-1];
    for(i=0;i<num;i++)                                  //输出杨辉三角形
    {
        for(j=0;j<=i;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}

G:童童是个奸商

#include<stdio.h>
int main()
{
    printf("171700");
}

不会写珂朵莉树的废柴ACMer