2012年7月17日
摘要: 先前的思路是观察1-10的数,可以用纯暴力从2,6,10一直循环到1000000从而找出自身数,但是会超时。于是我就想,从一个数算出下一个数,如132->138,通过138->150这样由一个数得到另一个数。这样类似于筛选法,而且只要循环一边就可以得到答案了。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX_1000001usingnamespacestd;constintSIZE=1000001;intvis[SIZE]={0};voidinit(intn) 阅读全文
posted @ 2012-07-17 21:26 有间博客 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题意要理解好。分割后的整数有若干零,则输出零。CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintmaxn=1001;chars[maxn],save[maxn];inta[maxn];intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}intmain(){inti,j;while(~scanf("%s",s)){intl=strlen(s);inttot1=0; 阅读全文
posted @ 2012-07-17 20:40 有间博客 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 简单模拟:CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;chars[81];intmain(){intfirst=1;//判断是否是在行首intcnt=0;while(~scanf("%s",s)){inti,j;if(!strcmp(s,"<br>")){printf("\n");cnt=0;first=1;//每次换行后下一行必定在行首,所以first=1;continue;}i 阅读全文
posted @ 2012-07-17 16:39 有间博客 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 同余定理的运用:(a+b)%c=(a%c+b%c)%c;(a*b)%c=(a%c*b%c)%c;CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintmaxn=1001;chars[maxn];intmain(){intm;while(~scanf("%s%d",s,&m)){intl=strlen(s);intans=0;for(inti=0;i<l;i++){ans=(ans*10%m+(s[i]-' 阅读全文
posted @ 2012-07-17 15:45 有间博客 阅读(87) 评论(0) 推荐(0) 编辑