竖式问题

#include <stdio.h>
#include <stdlib.h>
#include"string.h"
//给一个特定的数字集合,找出形如abc*de(三位数乘以两位数)的算式
//使得在完整的竖式中,所有数字均属于这个数字集合
//竖式,就是小学做数学乘法时列的那种式子
//如:
//  111     abc
// X 11     de
// ----
//  111     x
// 111      y
// ----
// 1221     z
int main()
{
    char s[10];//用字符数组存特定数字集合
    char buffer[100];
    gets(s);
    int x,y,z,abc,de;
    int count=0;
    for(abc=100;abc<=999;abc++)//列举所有三位数和两位数,满足的则采纳
        for(de=10;de<=99;de++){
         x=abc*(de%10);
         y=abc*(de/10);
         z=abc*de;
         sprintf(buffer,"%d%d%d%d%d",abc,de,x,y,z);//abcdexyz存入一个字符数组
         int flag=1;
         for(int i=0;i<strlen(buffer);i++){//逐个判断所存数组字符是否存在于特定数组中
            if(strchr(s,buffer[i])==NULL){//
                    flag=0;
                    break;
            }
         }
         if(flag)
            printf("<%d>\n%5d\nx%4d\n\n%5d\n%4d\n\n%5d\n\n",++count,abc,de,x,y,z);

    }


    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值