C++中的数学计算
Mathematical calculation in C++
我想用这个公式写一个函数!
列出你的曾祖父母去世的年龄。
将每个数字相乘。
把它们加在一起。
取结果的平方根。
除以二。
这是一个例子:
predictAge(65, 60, 75, 55, 60, 63, 64, 45) === 86
这是我写的代码:
#include <math.h>
#include <iostream>
#include <vector>
#include <cmath>
int predictAge(std::vector<int> ages)
{
for(int i = 0; i < ages.size(); i++) {
int Produc = ages[i] * ages[i];
int Sum = Produc + Produc;
int Squar = sqrt(Sum);
int Final = Squar / 2;
std::cout << Final << "n";
}
}
int main() {
std::cout << predictAge({65, 60, 75, 55, 60, 63, 64, 45});
return 1;
}
有人能帮忙吗?
类似于:
int predictAge(std::vector<int> ages)
{
int Sum = 0;
for(int i = 0; i < ages.size(); i++) {
int Produc = ages[i] * ages[i];
Sum += Produc;
}
return sqrt(Sum) / 2;
}
您应该注意输入数据检查和错误处理。
如果你拼写出了正确的算法,你就是无法正确实现它。您希望RSS(平方根(除以std::vector
中所有年龄中的两个。既然RSS是一种常见的算法,为什么不写一个函数来计算所有值的RSS,然后将返回值除以2来完成你的算法呢。
您可以实现如下:
#include <iostream>
#include <vector>
#include <cmath>
double rss (std::vector<int>& ages)
{
double sum = 0.;
for (const auto& a : ages)
sum += a * a;
return sqrt (sum);
}
int main (void) {
std::vector<int> ages { 65, 60, 75, 55, 60, 63, 64, 45 };
std::cout << static_cast<int>(rss(ages) / 2.) << 'n';
}
(注意:因为需要一个整数值,所以将返回值除以2强制转换为int
。如果需要浮点结果,可以删除强制转换(
函数中for
循环上方是基于范围的循环(由于C++11(
示例使用/输出
$ ./bin/rss_ages
86
仔细看看,如果你还有问题,请告诉我。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 计算平均值,不包括上次得分
- 如何计算多映射中重复对的数量