CCA的数列

CCA的数列

https://ac.nowcoder.com/acm/contest/9700/A

CCA的数列

题目链接:nowcoder 213875

到主站看:https://blog.csdn.net/weixin_43346722/article/details/112132183

题目大意

判断一个数列是否是等差序列,等比数列,等模数列的其中一个。
等模数列的定义是:对于任意相邻两数,后一个对前一个取模后的值均相等。

思路

就直接模拟,开三个 bool 变量。

最后只要剩下一个,都输出 YES,否则就是 NO

记得等比数列的那个地方,相邻数的比不一定是整数,可能是小数。

代码

#include<cstdio>

using namespace std;

int n, cha, mo, a[100001];
double bi;
bool yes1, yes2, yes3;

int main() {
    yes1 = yes2 = yes3 = 1;

    scanf("%d", &n);
    scanf("%d %d", &a[1], &a[2]);
    cha = a[2] - a[1];
    bi = (a[2] * 1.0) / (a[1] * 1.0);
    mo = a[2] % a[1];
    for (int i = 3; i <= n; i++) {
        scanf("%d", &a[i]);

        if (yes1) {
            if (cha != a[i] - a[i - 1]) {
                yes1 = 0;
            }
        }
        if (yes2) {
            if (bi != (a[i] * 1.0) / (a[i - 1] * 1.0))
                yes2 = 0;
        }
        if (yes3) {
            if (mo != a[i] % a[i - 1])
                yes3 = 0;
        }

        if (!yes1 && !yes2 && !yes3) {
            printf("NO");
            return 0;
        }
    }

    if (yes1 || yes2 || yes3) printf("YES");
        else printf("NO");

    return 0;
}
全部评论

相关推荐

_mos_:要不是看评论区我都不知道你要找的是数分
点赞 评论 收藏
分享
12-18 18:50
已编辑
门头沟学院 golang
牛客33637108...:重点是要事已密成,在没有进入这家公司之前,不要有任何的泄露信息,我之前跟你一样,面了一家光伏设备厂,底薪7500加上出差补贴大概有13,000左右,已经给了口头offer了,甚至要了我的在校成绩的所有信息,还向我要了三方的网签二维码,到后面还是毁约了,我干过最愚蠢的事情就是向同学透露要签三方的事,之后的失败只会让他们幸灾乐祸,这是即将结束的大学生活给我的最后一课,不要相信任何的口头三方,该面的就去面,甚至签了三方也有毁约的可能,就像我现在签了三方还在外面实习呢,春招还是要继续参加的,不能停止面试,不然到后面毁三方的时候,重新捡起的面试很麻烦的,这是我一点点小小的见解。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务