程序3-4 竖式问题

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

样例输入:2357

样例输出:

<1>

..775

X..33

-----

.2325

2325.

-----

25575

The number of solutions = 1

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
    int count=0;
    char s[20],buf[99];
    scanf("%s",s);
    for(int abc=111; abc<=999; abc++)
    {
        for(int de=11; de<=99; de++)
        {
            int x=abc*(de%10),y=abc*(de/10),z=abc*de;
            sprintf(buf,"%d%d%d%d%d",abc,de,x,y,z);
            int k=1;
            for(int i=0; i<strlen(buf); i++)
            {
                if(strchr(s,buf[i])==NULL)
                {
                    k=0;
                }
            }
            if(k)
            {
                printf("<%d>\n",++count);
                printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n",abc,de,x,y,z);
            }
        }

    }
    printf("The number of solutions=%d\n",count);
    return 0;
}

printf、sprintf与fprintf 的用法区分
 
1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制.
 
2.fprintf是用于文件操作的
 
3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件
 

strchr函数功能为在一个串中查找给定字符的第一个匹配之处。函数原型为:char *strchr(const char *str, int c),即在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。strchr函数包含在C 标准库 <string.h>中。

发布了7 篇原创文章 · 获赞 0 · 访问量 109

猜你喜欢

转载自blog.csdn.net/qq_44954571/article/details/103979389
3-4
今日推荐