NYOJ506 洗澡

来源:互联网 发布:微信公众内容采集源码 编辑:程序博客网 时间:2024/03/28 16:58

原题链接

开始想得比较复杂,结果理不清思路,后来发现可以直接打表,然后就过了。

#include <cstdio>#define MAX 50000 + 2int a[MAX];bool f(int n){while(n){if(n % 10 == 4) return 1;n /= 10;}return 0;}int main(){int n;for(n = 1; n != MAX; ++n)if(f(n)) a[n] = a[n - 1];else a[n] += a[n - 1] + 1;while(scanf("%d", &n) == 1)printf("%d\n", a[n]);return 0;}


0 0