Click here to Skip to main content
15,884,099 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I submit my answer in Programming Challenges Judge(here http://www.programming-challenges.com[^]).I think my code of my is correct,but it show the result that is Answer Wrong.
Here is the code:
C++
// 3n+1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

//declare function for calculate number of sequence of numbers
unsigned int NumOfSquence(unsigned int n);

int _tmain(int argc, _TCHAR* argv[])
{
	unsigned int i = 1,j = 1,temp = 0; 
	cin>>i>>j;
	//switch i and j,if(i > j)
	if(i > j){
	        temp = i;
	        i = j;
		j = temp;
	}
	unsigned int max = NumOfSquence(i);
	for(unsigned int k = i + 1;k <= j; k++){
		temp = NumOfSquence(k);
		if(temp > max){
			max = temp;
		}
	}
	cout<<i<<" "<<j<<" "<<max<<endl;
	return 0;
}

//the function of calculate number of sequence of numbers,whilch begins with n
// 16 8 4 2 1
unsigned int NumOfSquence(unsigned int n){
	unsigned int num = 1;
	while(n != 1){
		if(n % 2 == 0){
			n /=2;
		}
		else if(n % 2 == 1){
			n = 3 * n + 1;
		}
		num++;
	}
	return num;
}
Posted
Updated 14-Nov-12 2:51am
v2
Comments
Legor 14-Nov-12 9:28am    
Is there any actual question related to this ?
MLOVEternity 15-Nov-12 10:23am    
Here is the problem :
http://acm.uva.es/p/v1/100.html[^]
MLOVEternity 15-Nov-12 10:08am    
@Jacques Loubser
This is an algorithmic problem in book,Programming challenges.It don't just calculate the answer of (3n + 1).

Hi
Why must it be so complicated?

3n + 1 = (3 * n)+1

C++
unsigned int n = 0;
unsigned int output = 0;
output=( 3 * n ) + 1 ;
 
Share this answer
 
It seems from your code that you're trying find the longest sequence of steps for a Collatz conjecture[^] between 2 initial numbers.

In the function 'NumOfSquence' you should start from num = 0 instead of num = 1 to count the number of steps instead of the number values.

I hope this helps.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900