我刚从护理学转到计算机科学专业,我不知道我们一直在做的后期任务是怎么回事。我最终迷路了。我试图看看如何处理这个特定的程序,但是,我仍然不了解如何。
基本上这里发生的是,我需要创建一个c ++程序,它在屏幕上生成一个序列的最大值,最大值所在的位置,该值等于1所需的步数,以及x值。
顺便说一句,所有这些数据都应该从文件中读取。
例如,为了更清楚地说明我在说什么,有两个方程用于x的这个随机值,最终得到1。
奇数编号值= 3 *编号+ 1 偶数值= num / 2
例子。 75在数据文件中。 75很奇怪。乘以75乘3并加1得到226. 226是偶数。除以2.你得到113.依此类推,直到你最终达到1。 这是看起来像:
x = 75,然后k = 14,序列中的数字为:75,226,113,340,170,
85,256,128,64,32,16,8,4,2,1。
k将引用它达到1所采取的步骤.4将是最大值在该序列中的位置。
我有一些非常糟糕的代码......请忽略它有多糟糕。我只是想不出如何用我给出的信息写下来。
#include <iostream>
using namespace std;
int main (){
int x;//The integer in the file
int count=0; // Counting how many integers there are in the file
int steps; // Number of steps it takes to reach 1
int largestValue; // Largest Value in the sequence
int position; // The position of where the largest value is in the sequence
int a;// Number that needs to be constantly changing in a sequence
int counter = 0; // Counting the values in a file
cin >> x;
while(!cin.eof()){
cin >> x;
counter++;
if (x % 2 == 0){
a = x/2
else
a = (3 * x) + 1
}
cout << "Starting at "<< x << " it takes " << steps << "to reach 1" << endl;
cout << "The largest number in the series is" << largestValue << "at position"
<< position << endl;
return 0;
}