蓝桥2015年省赛A组题目题解

填空题

方程整数解

在这里插入图片描述
正确答案:

10 18 24
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
   
    int n;
    while(~scanf("%d",&n))
    {
   
        int t = sqrt(n); int ok = 0;
        for(int a = 1; a <= t; a++)
        {
   
            for(int b = a; b <= t; b++)
            {
   
                int c = n - a*a - b*b;
                c = sqrt(c);
                if(a*a + b*b + c*c == n && c >= b && b >= a)
                    printf("%d %d %d\n",a,b,c), ok = 1;
            }
        }
        if(!ok) puts("No Solution");
    }
    return 0;
}

星系炸弹

在这里插入图片描述
正确答案:

2017-08-05
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int months[13];
void init()
{
   
    for(int i = 1; i <= 12; i++)
    {
   
        if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) months[i] = 31;
        else if(i == 2) months[2] = 0;
        else months[i] = 30;
    }
}
bool inbound(int x)
{
   
    if((x%4 == 0 && x%100) || x%400 == 0) return true;
    return false;
}
 
int main()
{
   
    init();
    int year,month,day,n;
    while(~scanf("%d %d %d %d", &year,&month,&day,&n))
    {
   
        if(inbound(year)) months[2] = 29;
        else months[2] = 28;
        if(months[month] - day >= n)
            printf("%d-%02d-%02d\n",year,month,day+n);
        else
        {
   
            int t = months[month] - day;
            n -= t;
            day = 0;
            month++;
            if(month > 12) year++,month = 1;
            while(n > 0)
            {
   
                if(inbound(year)) months[2] = 29;
                else months[2] = 28;
                for(int i = month; i <= 12; i++)
                    for(int j = 1; j<= months[i] && n > 0; j++)
                    {
   
                        n--;
                        if(n == 0)
                        {
   
                            day = j;
                            month = i;
                            break;
                        }
                    }
                    if(n>0) year++,month = 1;
                }
                printf("%d-%02d-%02d\n",year,month,day);
            }
        }
    return 0;
}

奇妙的数字

在这里插入图片描述
正确答案:

69
#include <iostream>
#include <cstring>
using namespace std;
int a[10];
void work(long long x)
{
   
    while(x > 0)
    {
   
        a[x%10]++;
        x /= 10;
    }
}
int main()
{
   
    bool ok = true;

    long long ans =0;
    for(long long i = 1; i < 9876543211 && ok; i++)
    {
   
        memset(a,0,sizeof a);
        long long x = i*i, y = i*i*i;
        work(x); work(y);
        if(a[0] == 1 && a[1] == 1 && a[2] == 1 &&
            a[3] == 1 && a[4] == 1 && a[5] == 1 &&
            a[6] == 1 && a[7] == 1 && a[8] == 1 &&
            a[9] == 1) ok = false, ans = i;
    }
    cout<<ans<<endl;
    return 0;
}

格子中的输出

在这里插入图片描述
在这里插入图片描述
正确答案:

(width-strlen(buf)-2)/2,"",buf,(width-</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸愉信奥

谢谢亲的支持,我会继续努力啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值