竖式问题

Posted challengor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了竖式问题相关的知识,希望对你有一定的参考价值。

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

 

样例输入:

2357

样例输出:

<1>

..775

X..33

-----

.2325

2325.

-----

25575

The number of solutions = 1

#include<stdio.h>
 #include<string.h>
 int main()
 {
     char s[20],buf[99];//用于接受输入数字串
     int a,b,c,Count = 0;
     scanf("%s",s);//注意此处不需要取地址&
     for(int i=111;i<=999;i++)//遍历所有的三位数
     {
         for(int j=11;j<=99;j++)//遍历所有的两位数
         {
             a = i*(j%10);//上面的乘数
             b = i*(j/10);//下面的乘数
             c = i*j;//结果
             //进行是否满足要求的判断
             sprintf(buf,"%d%d%d%d%d",i,j,a,b,c);//将整型数存入字符数组buf
                                                     //便于进行判断
             int ok = 1;
             for(int k=0;k<strlen(buf);k++)
                 if(strchr(s,buf[k])==NULL) ok = 0;
             if(ok)
             {
                 Count++;
                 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 the solutions = %d",Count);
     return 0;
 }

 

以上是关于竖式问题的主要内容,如果未能解决你的问题,请参考以下文章

竖式问题——巧用字符数组

竖式问题

竖式问题

《C#零基础入门之百识百例》输出格式控制 -- 竖式计算

UVA-12333 Revenge of Fibonacci(竖式加法模拟 & 字典树)

竖式问题