求你了别秀了——Reversion Count

周日打了一场计蒜课的比赛,内心是非常挣扎的,其实并不想打,因为作业做不完会被打的,水了签到题就走了。

但是看了一道挺有意思的题,Reversion Count,题目链接:如果你不想点我下面有图片

题目如下:


当时没想太多,因为一心回去写作业。

然后又想了想还有点意思的。

这题肯定不能按部就班高精度啊。

所以,这是一道小数据猜结论的题。

打表程序(模拟):

#include <cstdio>
#include <cstring>
using namespace std;
int ft(int x){
    int temp = x;
    int t = 1;
    int n = 0;
    while (temp){
        n ++;
        t = t * 10;
        temp /= 10;
    }
    t /= 10;
    int ans = 0;
    temp = x;
    for (int i = n; i > 0; i--){
        ans += (temp % 10) * t;
        t /= 10;
        temp /= 10;
    }
    return ans;
}
bool check(int i ){
    if (i < 0)
        i = -i;
    int p = i % 10;
    i/=10;
    while (i){
        if (i % 10 != p){
            return false;
        }
        i/=10;
    }
    return true;
}
int main(){
    for (int i = 0; i < 100000; i++){
        int y = ft(i);
        if ((i-y)%9==0)
            if (check((i-y) / 9))
                printf("%d\n", i);

    }

    return 0;
}

打100000个数据的表,然后发现,只要x满足除了首尾数字外其余的部分为回文的就o98k了。


然后附上蒟蒻写的程序:

#include <cstdio>
#include <cstring>
using namespace std;

int main(){
    char x[110];
    while (scanf("%s", x)!=EOF){
        if (strlen(x) <= 3){
            printf("YES\n");
            continue;
        }
        int len = strlen(x);
        bool flag = true;
        for (int i = 1; i < (len-1)/2 + 1;i ++){
            if (x[i] != x[len - 1 - i]){
                flag = false;
                break;
            }
        }
        if (flag)
            printf("YES\n");
        else
            printf("NO\n");

    }

    return 0;
}

又到了文章的最后,所以又得皮一下啦:

算了,今天不想皮了,还得补作业。

最近在看王小波的《沉默的大多数》,刚刚开始。

第一篇有一句话不错:和任何话语相比,饥饿都是更大的真理。

恩,没错,现在的我有点小饿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值