如果是前两位数的三倍积

If treble product of first 2 digits

本文关键字:三倍 两位 如果      更新时间:2023-10-16

我正在写一个程序,它应该能够计算前n-1位数字的乘积。
注:前2位为高音

输入4位数字表示代码有效,例如:1234,product为6。不能理解高音部分

到目前为止,我尝试了这个,但没有解决方案:

 using namespace std;
 int main()
{
int n , sum = 0, s,d,k,w, product ;
cout <<"Enter number: " << endl;
cin >> n;
if ((n>1) && (n<10000)) {
{
 s= n/10;
    d = n/100%10; // 2.
    k = n/1000%100%10; //1.
    w = n/10%10; //3.
//1234
   product = w*d*k;

  if ((n>1) && (n<1000)) {
       s = n/10;
    d = n/100%10; // 2.
    k = n/1000%100%10; //1.
    w = n/10%10; //3.
    product = k*d;
}
     cout <<"Sum of digits inp numb is : " << d+k+w  << " and product is : " << product  <<  endl;
     cout << "w: " << w << " k: " << k << " d: " << d << " s: " << s << endl;
   }
 }
    return 0;
}
 if ((n>1) && (n<1000)) {
       s = n/10;
    d = n/100%10; // 2.
    k = n/1000%100%10; //1.
    w = n/10%10; //3.
    product = k*d;
}

这个部分应该是你的"高音"部分。这一行就是问题所在:

product = k*d;.

如果是n < 1000,那么k就变成了0%100%10,即0。因此乘积是0。我想你的意思是:

product = w*d;

对于通解,重复除取模数的运行积。这样的:

n = n/10;
product = 1;
while (n > 0){
    product = product * (n%10);
    n = n/10;
}