zoukankan      html  css  js  c++  java
  • 针对输入的数字集合的"abc*de"竖式计算

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

    二. 问题分析:按竖式计算的步骤各自计算,并将过程中算出的数得到一个数字集合ele,遍历ele并与原集合all对比,保证ele是all的子集

      关键步骤:

    ①sprintf()函数

    ②strchr()函数

    三.代码如下:

     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     char all[20],ele[100];
     6     int cnt;
     7     scanf("%s",all);
     8     for(int abc=111;abc < 999;abc ++){
     9         for(int de=11;de < 99;de ++){
    10             int x = abc*(de%10),y = abc*(de/10),z = abc*de;
    11             sprintf(ele,"%d%d%d%d%d",abc,de,x,y,z);
    12             
    13             int ret=1;//用来判断是否输出的基准 
    14             for(int i=0;i < strlen(ele);i ++){
    15                 if(strchr(all,ele[i])==NULL)//但凡有不在原集合中的元素... 
    16                     ret=0;
    17             }
    18             if (ret){
    19                 printf("<%d>
    ",++cnt);
    20                 printf("%5d
    X%4d
    -----
    %5d
    %4d
    -----
    %5d
    
    ",abc,de,x,y,z);
    21             } 
    22         }
    23     }
    24     printf("The number of solutions is %d
    ",cnt);
    25     return 0;
    26 }

       

    天涯犹在,不诉薄凉。
  • 相关阅读:
    XML 编码
    XML CDATA
    XML 命名空间
    XML 解析器
    XML XMLHttpRequest 对象
    XML 和CSS
    XML 验证
    XML 属性
    XML 元素
    XML 语法规则
  • 原文地址:https://www.cnblogs.com/Knight02/p/14286127.html
Copyright © 2011-2022 走看看