简体   繁体   English

C ++ 10的大数幂

[英]C++ Large numbers power of 10

New to C++ programming. C ++编程的新手。 Is there a way make the code better so that it does not have repeated code. 有没有一种方法可以使代码更好,从而避免重复的代码。

if (totalDistance < pow(10, 3)) {
    cout << "\nTotal (approx) travel distance = " << totalDistance << " million km\n" << endl;
}
else if (totalDistance < pow(10, 6)) {
    totalDistance = totalDistance / pow(10, 3);
    cout << "\nTotal (approx) travel distance = " << totalDistance << " billion km\n" << endl;
}
else if (totalDistance < pow(10, 9)) {
    totalDistance = totalDistance / pow(10, 6);
    cout << "\nTotal (approx) travel distance = " << totalDistance << " trillion km\n" << endl;
}
cout << "\nTotal (approx) travel distance = ";
if (totalDistance < pow(10, 3)) {
    cout << totalDistance << " million km\n";
else if (totalDistance < pow(10, 6)) {
    cout << totalDistance / pow(10, 3) << " billion km\n";
}else if (totalDistance < pow(10, 9)) {
    cout << totalDistance / pwo(10, 6) << " trillion km\n";
}

I am supposing you are not using totalDistance anymore, and you don't need an endl if you are already using '\\n'. 我假设您不再使用totalDistance,并且如果您已经在使用'\\ n',则不需要endl。

Easiest improvement: 最简单的改进:

if (totalDistance < pow(10, 3)) {
    outputDistance(totalDistance); 
}
else if (totalDistance < pow(10, 6)) {
    totalDistance = totalDistance / pow(10, 3);
    outputDistance(totalDistance); 
}
else if (totalDistance < pow(10, 9)) {
    totalDistance = totalDistance / pow(10, 6);
    outputDistance(totalDistance); 
}

private void outputDistance(const double totalDistance) {
cout << "\nTotal (approx) travel distance = " << totalDistance << " trillion km\n" << endl;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM