竖式问题

from......http://zhan.renren.com/xiaoyantian?gid=3602888498024774969&checked=true


题目:


找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。


样例输入:2357


样例输出:


<1>


..775


X..33


-----


.2325


2325.


-----


25575


The number of solutions = 1


 题意:[code=C/C++][/code] 
      775                                       7   ,5在{2,   3,   5,   7}集合中 
    X   33                                       3在{2,   3,   5,   7}集合中 
----------------------------------------------------- 
    2325                                         2,3,5在{2,   3,   5,   7}集合中 
  2325 
------------------------------------------------------ 
  25575                             2,   5,   7在{2,   3,   5,   7}集合中 
输入一个数,表示这个数组中含有这几个数的元素。
代码:


#include <stdio.h>   
#include <string.h>   
   
int main()   
{   
  int abc, de, x, y, z, i, ok, count = 0;   
  char s[20], buff[100];   
  scanf("%s", s);   
   
  for (abc = 100; abc < 999; abc++)   
  {   
  for (de = 10; de < 99; de++)   
  {   
  x = abc * (de % 10);   
  y = abc * (de / 10);   
  z = abc * de;   
  sprintf(buff, "%d%d%d%d%d", abc, de, x, y, z);   
  ok = 1;   
  for (i = 0; i < strlen(buff); i++)   
  if (strchr(s, buff[i]) == NULL)   
  ok = 0;   
  if (ok)   
  {   
  printf("<%d>/n", ++count);   
  printf("%5d/nX%4d/n-----/n%5d/n%4d/n-----/n%5d/n", abc, de, x, y, z);   
  }   
  }   
  }   
  printf("The number of solutions = %d/n", count);   
  return 0;   
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值