竖式问题,紫书3.2例题

Posted 柳暗花明_liu

tags:

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

strlen(s);
sprintf(buf,"%d",abc); strchr(s,buf(1));

返回字符串的已经定义过的部分的长度,不包括“\0”;

向字符串输入(在保证在字符串空间够的情况下,即字符个数加一);

判断字符串中是否含有某个字符,没有,返回NULL。

 

这道题难度不大,但是在题目中关于for循环到底是从“100 10”开始,是作者弄错了;还是从“111,11”开始,作者这样做有其他深意?这一点网上有争议。

我觉得是作者弄错了,以实验作为理由:

代码:

#include"iostream"
#include"cstring"
using namespace std;

int main()
{
    int count=0;
    char s[20],buf[99];
    scanf("%s",s);
    for(int abc=100;abc<=999;abc++)
    for(int de=10;de<=99;de++)
    {
        int x=abc*(de%10),y=abc*(de/10),z=abc*de;
        sprintf(buf,"%d%d%d%d%d",x,y,z,abc,de);
        int ok=1;
        for(int i=0;i<=strlen(buf);++i)
        if(strchr(s,buf[i])==NULL) ok=0;
        if(ok==1)
        {
            count++;
            printf("<%d>\n",count);
            printf("%5d\n*%4d\n_____\n%5d\n%4d\n_____\n%5d\n\n",abc,de,x,y,z);
        }
    }
    printf("%d",count);
 } 

输入 108,有34种结果

改为从“111 11”开始,输入108,只有四种结果,所以我认为是作者的失误

如果思路不对,恳请大家指教

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

紫书例题6-7 树的层次遍历

紫书例题3-5 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

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

紫书140例题6-2 铁轨&&UVa514

紫书例题6-4 (UVa 11988)

紫书例题3-3 回文词(Palindromes, UVa401)