gpt4 book ai didi

c++ - 将数字相乘

转载 作者:行者123 更新时间:2023-12-02 10:18:11 25 4
gpt4 key购买 nike

我要构建以下程序:

用户必须插入一个介于100和999之间的数字(例如100 < i < 999),并且数字必须彼此相乘。
例:

  • 有效输入:178
  • 对应结果:1 * 7 * 8 = 72

  • 我试图实现第一部分,即通过以下两种方式检查输入的给定数字是否在100和999之内,但是我的方法并不是很优雅:

    #include <stdio.h>
    int main()
    {
    char n[4];
    scanf("%s", n);
    printf("%d\n", (n[0]-'0')*(n[1]-'0')*(n[2]-'0'));
    return 0;
    }

    要么

    #include<stdio.h>
    int main()
    {
    int array[3];
    scanf("%1d%1d%1d", &array[0],&array[1],&array[2]);
    for ( int i=0; i<3; i++) {
    printf("%d\n", array[i]);
    }
    return 0;
    }

    他们是否有更好的方法来实现相同目标?

    我正在寻找C++解决方案。

    最佳答案

    您可以在一段时间内将std::cin附加为条件:

    int x;
    while (std::cin >> x && x>=100 && x <=999)
    \\ Do what you want

    若要将数字相乘,只需将每个数字除以10即可得到余数,然后将其乘以当前乘积(设置一个变量,初始值为1),然后在循环中除以10,直到获得所有数字的乘积,即可提取出每个数字。例如,创建一个返回数字的乘积的函数:

    int digitproduct(int x) 
    { int product = 1;
    while (x != 0)
    {
    product *= (n % 10);
    x /= 10;
    }
    return product;
    }

    在while内调用:

    int x;
    while (std::cin >> x && x>=100 && x <=999)
    { cout<< digitproduct(x);
    break;
    }

    关于c++ - 将数字相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61225177/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com