c++ - 如何编写程序来计算这个方程
问题描述
您好,我是 C++ 的初学者,我需要编写一个程序来计算这个方程。有谁能够帮我?A
并M
从键盘读取
方程:
我试过这段代码:
int M = 1;
int A;
cin >> A;
cin >> M;
float sum;
for(int i = 1; i<=M; k++){
k = k*i;
float A1 = pow(A, i);
sum += A1 / k;
}
解决方案
除了上面已经列出的 3 个明显问题(无限循环、丢失初始化、丢失函数声明)之外,我们可以通过迭代计算 A^k 来优化性能,而不是在每个步骤中重新计算:
#include <stdio.h>
auto combinations(float A, unsigned short M) {
float ret_val = 1.0f; // For k=0: A^0 / 0! = 1
float num = A;
float denum = 1;
for (int k = 1; k <= M; ) {
ret_val += num / denum;
num *= A;
denum *= ++k;
}
return ret_val;
}
int main()
{
printf("Value for A=2, M=10: %f\n\r", combinations(2.0f, 10));
return 0;
}
推荐阅读
- google-drive-api - Google Drive API:ERR_ADDRESS_INVALID 错误
- django - Django - 修改通用详细视图以管理表单和发布数据 - Django
- laravel - 在 laravel 中使用日志号在生产模式下显示错误
- javascript - 如何一次替换字符串的多个不同部分?
- java - web3j 的 StaticArray 是抽象的
- bios - 写只读 ACPI 表
- css - 一页上有两个 Modernizr 实例
- python - 如何从
Python 中的标签中提取文本? - oauth-2.0 - 为什么在 Header 中发送“Bearer”文本
- typescript - 类中的可选泛型定义