如果是前两位数的三倍积
If treble product of first 2 digits
我正在写一个程序,它应该能够计算前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;
}
相关文章:
- 如何在C ++中替换整数的前两位数字?
- 如何输出计算到小数点后两位的中间器?
- 将两位数字转换为低内存表示的最快方法
- 该循环的三倍的复杂性
- 打印像素值,但图像重叠.图像是其应有大小的三倍
- 如何在计算器中将大数字表示为小数点后两位C++
- 可视化 如何使用C++向右强制小数点后两位
- 为什么我的C++代码比LeetCode上的C代码慢三倍
- 二进制位流与三进制位流之间的转换
- 创建一个 c++ 程序,根据整数是奇数还是偶数,将整数数增加一倍和三倍
- 四舍五入双小数点后两位
- 将浮点数限制为小数点后两位
- C++ 如何获取兰登数以及如何保存带有 ONY 两位小数的双精度
- 使用 "double" 输出具有两位小数的值
- 程序查找并打印第一个完全正方形 (i*i),其最后两位数字都是奇数
- 转换为十六进制并删除最后两位数字
- 我将如何在不使用 if 语句、字符数组、apstring 或 atoi 的情况下将带有两位数字的字符串转换为 int
- C++四舍五入小数点后两位
- 如何正确格式化c++浮点数到小数点后两位
- 如果是前两位数的三倍积