0814d


私信TA

用户名:dotcpp0808809

访问量:42

签 名:

等  级
排  名 24314
经  验 617
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校 dotcpp大学
专  业

  自我简介:

初学者 加油 希望自己有强大的内核 抗压能力 我一定可以 只是我没弄会 没弄懂 我不笨! 学无止境

解题思路:

题目描述

假设今天是星期日,那么过ab天之后是星期几?

输入格式

两个正整数a,b,中间用单个空格隔开。0<a≤100,   0<b≤10000。

输出格式

一个字符串,代表过ab天之后是星期几。
其中,Monday是星期一,Tuesday是星期二,Wednesday是星期三,Thursday是星期四,Friday是星期五,Saturday是星期六,Sunday是星期日。

样例输入

复制

3 2000

样例输出

复制

Tuesday

提示

注意数据大小



注意事项:若令a^b=n,如果定义n为int类型,那么如果n过大 那么就会出现数值溢出的情形 由此 我放弃了用pow函数来计算次方值,而是选择了for循环来每轮对7求余来缩小n的值,避免了大数字运算 为什么要将n定义为long long类型 原因就是它比int可以储存更大的数值  我用的for循环和if-else语句,当然也可以用Switch语句

参考代码:

11111111

#include <stdio.h>

#include <math.h>

int main(void)

{

    int a,b;

    long long n=1;

    

    scanf("%d %d",&a,&b);

    for (int i=0; i<b; i++) {

        n=(n*a)%7;//简化运算

    }

   // printf("%lld",n);

    if (n==1) {

        printf("Monsday");

    }else if (n==2) {

        printf("Tuesday");

    }else if (n==3) {

        printf("Wednesday");

    }else if (n==4) {

        printf("Thursday");

    }else if (n==5) {

        printf("Friday");

    }else if (n==6) {

        printf("Saturday");

    }else{

        printf("Sunday");

    }

    

    return 0;

}

2222222

#include <stdio.h>

#include <math.h>

int main()

{

   long long  c=1;//定义天数;

   int a,b;

   scanf("%d %d",&a,&b);

   for(int i=1;i<=b;i++){

    c*=a;//计算a的b次方的天数;

    c%=7;//模7求最后的余数,判断星期几;

    }

    switch(c)

    {

        case 1:

            printf("Monday\n");

            break;

        case 2:

            printf("Tuesday\n");

            break;

        case 3:

            printf("Wednesday\n");

            break;

        case 4:

            printf("Thursday\n");

            break;

        case 5:

            printf("Friday\n");

            break;

        case 6:

            printf("Saturday\n");

            break;

        default:

            printf("Sunday\n");

            break;

    }

    return 0;


}



 

0.0分

0 人评分

  评论区

  • «
  • »