七行プログラミング part5
■ このスレッドは過去ログ倉庫に格納されています
0804デフォルトの名無しさん
2008/04/30(水) 20:03:42楽に7行になったから、短縮の工夫はおろか、checkやらmapやら長いトークン使いまくり。
再帰をなくせば5行いけそう。ここから新規の問題を作成するのは大変そうだ。
#include <stdio.h>
int map[100]={0};check(int c,int n){int i,v=10;while(v>0){i=c-v;while(map[i]&&
map[i]!=n)i-=v;if(map[i])return 0;v-=9;}v=(c%10)/3+((c-10)/30)*3;while(c>10){c
--;if((c%10)/3+((c-10)/30)*3!=v)continue;if(map[c]==n)return 0;}return 1;}main
(int c,char** x) {if(c%10==0)return main(c+1,0);if(c==91)return 1;int i;for(i=
1;i<10;i++){map[c+9]=i;if(check(c+9,i)){if(main(c+1,0)){printf("%d%c",i,(c%10-
1)?' ':'\n');return 1;}}}return 0;}
■ このスレッドは過去ログ倉庫に格納されています