买不到的数目

来源:互联网 发布:网络销售面试 编辑:程序博客网 时间:2024/04/28 21:24

这道题的优化相当于建立了一个数学模型:

#include"stdio.h"#include"stdlib.h"#include"time.h"#define max 100000000int main(){int m,n,temp;long int start,finish;scanf("%d %d",&m,&n);start=clock();long int *p;p=(long *)malloc(sizeof(long)*max);//开辟空间,建立一张0,1表p[0]=1;//初始化if(m<n){temp=m; m=n ;n=temp;}//保证n<mtemp=0;//初始化for(long int i=1;i<max;i++){p[i]=0;//初始化if(i>=m&&p[i-m]) p[i]=1; elseif(i>=n&&p[i-n]) p[i]=1;if(p[i]) temp++; else temp=0;if(temp==n) {printf("%ld",i-n); break; }}/*long int kk=0;for(long int i=0;i<max;i++){if(i>kk&&!p[i])kk=i;}printf("%ld",kk);*/finish=clock();printf("\nall time is: %lfs",(finish-start)/1000.0);printf("\n");system("pause");}

即:

数组中连续出现n个1或没有出现

这两种情况是对立的,且必有一种成立

(且这与出现最大的不能买出的数字是等价的)

0 0