菜鸟杯(二)

冥冥之中自有7意

内存限制:128 MB时间限制:1.000 S

题目描述

请根据输入的数字来打印相应大小的7的图形

输入

共t组输入,第一行输入一个数字t(1<=t<=10),每组第一行输入一个数字n(1<=n<=100)表示图形的大小

输出

每组输出相应大小的图形

样例输入 
3
1
2
3
样例输出 
77
 7
 7
777
  7
  7
  7
  7
7777
   7
   7
   7
   7
   7
   7

题解:

#include <stdio.h>
void f(int n) {
    int i;
    for (i = 0; i < n; i++)
        printf(" ");
}
int main() {
    int t, n,i;
    scanf("%d", &t);
    char ch = '7';
    while (t--) {
        scanf("%d", &n);
        for (i = 0; i <= n; i++) {
            printf("%c", ch);
        }
        printf("\n");
        for (i = 0; i < (2*n); i++) {
            f(n);
            printf("%c\n", ch);
        }
    }
    return 0;
}

今天是个好日子!

内存限制:128 MB时间限制:1.000 S

题目描述

众所周知,今天(新历 2021年11月27日)是个好日子,今天是吉首大学软件学院菜鸟杯举行的日子,你知道吗?今天其实还是个精挑细选的黄道吉日(bushi),是由学长在学完机器学习之后写的风水测评器上得到的,但是学长忘记今天是几月几日了,你想要验证今天是不是黄道吉日,请告诉学长今天是新历几月几日?

输入

输出

输出今天是新历几月几日(以汉字形式输出,输出格式 :"二月十一日"(不含引号,只输出几月几日))

样例输入 
样例输出 

题解:

#include <stdio.h>
int main() {
    int month, day;
    for (month = 1; month <= 12; month++) {
        for (day = 1; day <= 31; day++) {
            if (month == 11 && day == 27) {
                printf("十一月二十七日");
            }
        }
    }
    return 0;
}

汝觉吾摆时,吾若不摆,亦为摆

内存限制:128 MB时间限制:1.000 S

题目描述

当我在你觉得我会摆烂的时候不摆烂,也是一种摆烂。牛子爷如是说道。

现在给你一个数字。我们要将其转化为二进制,但是为了不让牛子爷认为你在摆烂。所以给定了一个新的转换为二进制的方法。
我们从个位数往后从1开始进行标记序号。  即个位序号为1,十位序号为2,百位序号为3 。如果某一位的序号和这一位上的数奇偶性相同。我们就认为二进制上这一位为1,否则即为0。
比如给你一个数 1322653 。 
那么其序号和转化为二进制的情况。


那么我们用题目给出的方法将其转换为二进制即为  1001001
但是你不想这么简单的吧这个二进制的数告诉出题人,所以你需要把这个二进制的数再转换为十进制并打印这个十进制的数。

输入

多组输入
每组给出一个数字。 数字长度为  1~10^6

输出

输出其通过题目给出方法转换为二进制再转换成十进制的数。
因为结果会超过long long int 的数据范围。 所以结果对 1000000007 取模。  
即如果答案为 1000000008 ,因为1000000008%1000000007=1,所以我们输出 1 。

样例输入 
1322653
13226535645645456561231355615641685158416532486138
342315
样例输出 
73
796471120
13

题解:

#include <stdio.h>
#include<string.h>
char t[1000001];
int main()
{
    long long h, l, len, sum;
    while (scanf("%s",t)!=EOF)
    {
        len = strlen(t);
        for (l = 1, h = len - 1; h >= 0; h--, l++)
        {
            if ((t[h] - '0') % 2 == l % 2)t[h] = 1;
            else t[h] = 0;
        }
        sum = 0;
        for (h = 0; h < len - 1; h++)
        {
            sum = (sum + t[h]) * 2 % 1000000007;
        }
        sum += t[h];
        printf("%lld\n", sum);
    }
    return 0;
}
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值