FOJ 2161 Jason and Number
暴力模拟找规律:
552287 | 2014-04-23 21:08:48 | Accepted | 2161 | Visual C++ | 0 ms | 192KB | 347B | Watermelon |
1 #include<stdio.h> 2 int main() 3 { 4 int n; 5 while(scanf("%d",&n)!=EOF) 6 { 7 if(n>=1&&n<3)printf("2\n"); 8 if(n>=3&&n<8)printf("5\n"); 9 if(n>=8&&n<24)printf("1\n"); 10 if(n>=24&&n<67)printf("8\n"); 11 if(n>=67&&n<732)printf("3\n"); 12 if(n>=732&&n<2470)printf("1\n"); 13 if(n>=2470)printf("3\n"); 14 } 15 return 0; 16 } 17
源代码:
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define num 20001 5 char s[200000]; 6 int a[num]={2,3}; 7 void db() 8 { 9 int i,j,k=2,flag; 10 for(i=5;;i+=2) 11 { 12 flag=1; 13 for(j=0;a[j]*a[j]<=i;j++) 14 { 15 if(i%a[j]==0) 16 { 17 flag=0; 18 break; 19 } 20 } 21 if(flag)a[k++]=i; 22 if(k==num)break; 23 } 24 } 25 int ans; 26 int fuc(char s[],int k) 27 { 28 int len=strlen(s); 29 //printf("k=%d len=%d %s\n",k,len,s); 30 if(len==1) 31 { 32 ans=atoi(s); 33 //printf("txt=%d\n",x); 34 return ans; 35 } 36 else if(k%2!=0) 37 { 38 int i,y=0; 39 char str[120000]; 40 for(i=0;i<strlen(s);i+=2) 41 str[y++]=s[i]; 42 str[y]='\0'; 43 //printf("k=%d %s\n",k,str); 44 fuc(str,++k); 45 } 46 else 47 { 48 int i=1,y=0; 49 char str[120000]; 50 for(;i<strlen(s);i+=2) 51 str[y++]=s[i]; 52 str[y]='\0'; 53 //printf("k=%d %s\n",k,str); 54 fuc(str,++k); 55 } 56 } 57 int main() 58 { 59 db(); 60 int n,i,j; 61 int x; 62 while(scanf("%d",&n)!=EOF) 63 { 64 memset(s,0,sizeof(s)); 65 char str[10]; 66 int len,k=0; 67 for(i=0;i<n;i++) 68 { 69 itoa(a[i],str,10); 70 len=strlen(str); 71 for(j=0;j<len;j++) 72 { 73 s[k++]=str[j]; 74 } 75 } 76 x=fuc(s,1); 77 printf("%d\n",ans); 78 } 79 //system("pause"); 80 return 0; 81 } 82