zju acmclub 1077 美丽数

来源:互联网 发布:spss数据分析下载 编辑:程序博客网 时间:2024/05/16 09:00

思路:结果是由规律的,把相邻结果做差可以发现会出现2,1,3,1,2,3的循环

做这题发现了一个问题,那就是用c++输如输出会超时,哪怕是用了cin.sync_with_stdio(false);坑爹啊.

#include<stdio.h>//#include<iostream>//using namespace std;int b[7]={2,1,3,1,2,3,3};int a[214286]={0};void f(){int i;a[1]=3;for(i=2;i<=214285;i++){a[i]=a[i-1]+b[(i-2)%7];}}int main(){f();//cin.sync_with_stdio(false);int n;while(scanf("%d",&n)!=EOF){printf("%d\n",a[n]);}return 0;}

还有个思路:仔细观察会发现其实输入的n和结果除以2相差并不大.然后将n=100000的结果为标准进行缩进,然后就.............

#include<stdio.h>int main(){int n;while(scanf("%d",&n)!=EOF){int i;for(i=2*n+n/10+n/25+n/500+n/1250;;i++){if(i/5+i/3-i/15==n){printf("%d\n",i);break;}}}return 0;} 


不过还是一样,用c++的输入输出会超时,伤不起啊伤不起.我这么写了之后被学长说是奇葩.- -!

0 0