《算法竞赛入门经典》例题3-3 竖式问题

#include <stdio.h>
#include <string.h>
void main() 
{
	char input[20];
	char tmp[90];
	int count = 1;
	scanf("%s",input);
	
	for (int i=100;i<1000;i++)
	{
		for (int j=10;j<100;j++)
		{
			int a=i*(j%10);
			int b=i*(j/10);
			int c=i*j;
			sprintf(tmp,"%d%d%d%d%d",i,j,a,b,c);
			int ok = 1;
			for (int m=0;m<strlen(tmp);m++)
			{
				if (!strchr(input,tmp[m]))
				{
					ok=0;
				}
			}
			if (ok)
			{
				printf("<%d>\n",count++);
				printf("%5d\nX%4d\n--------\n%5d\n%4d\n--------\n%5d\n",i,j,a,b,c);
			}
		}
	}
	printf("The number of solutions = %d\n",count-1);
}

  

posted @ 2013-02-08 00:38  EmacsTalk  阅读(273)  评论(0编辑  收藏  举报