C++ :: From Recursive To Iterative Function
Jan 5, 2015
I am trying to make from f_rec (recursive function) to f_iter (iterative function) but I can't.
(My logic was to create a loop to calculate the results of f_rec(n-1), another loop for 2*f_rec(n-2) and one loop for f_rec(n-3);
But I'm wrong)
int f_rec(int n) {
if(n>=3)
return f_rec(n-1)+2*f_rec(n-2)+f_rec(n-3);
[Code] .....
I also think that my run time for the f_rec is 3^n ...
View 2 Replies
ADVERTISEMENT
Jul 10, 2014
map< int, int > cache;
int count( int n ){
if( cache[n] != 0 ){
return cache[n];
[Code] ....
I don't know how to turn this recursive function into an iterative...
View 7 Replies
View Related
Jul 21, 2013
So I have a code like this one below :
void get_sum( INNER_ID id, vector<INNER_ID>& dont_check ) {
vector<INNER_ID> below = get_below( id );
vector<INNER_ID>::iterator second;
[Code]....
I use this algorithm for my "crappy" physic engine, so the point of this algorithm is to get the sum of mass below an object. get_below( id ) function can get the ids of what object is below them.
But before I need ids of the object below them to apply impulse, force, and some other physic stuff.
One object doesn't neccesarrly rest on top of one object, it can rest on 2 object or more.
when I look at it, it resemble a tree, maybe it's not. I just don't really know very much about tree algorithm
I cannot optimize a recursive code so I think, I better turn this into an iterative but I cannot seem to find a way to do that
View 4 Replies
View Related
Apr 8, 2014
Is there any way to programatically find if the given code is taking recursive approach or iterative apporaoch using concept of files in C programming.
View 3 Replies
View Related
Jun 23, 2013
I was studying BST and tried to make a iterative function to insert, the original recursive function is the following:
void insert(node *&tree, int value) {
if (!tree) {
tree = new node;
tree->num = value;
tree->left = tree->right = NULL;
[Code] ....
And the code that i did is (but doesn't work):
void insert(node *&tree, int value) {
if (!tree) {
tree = new node;
tree->num = value;
tree->left = tree->right = NULL;
[Code] ....
I don't see where the error is or why it doesn't work.
View 6 Replies
View Related
Nov 27, 2014
How do I change the following recursive function into a iterator function and basically what should it look like?
int f(int i) {
if(i<2)
return i;
return f(i-2)+f(i-1);
}
View 1 Replies
View Related
Nov 29, 2014
I had the following question in my exam and received 3 out of a possible 4 marks
Here is the question:
Assume the following recursive function:
int f(int i)
{
if(i < 2)
return i;
return f(i - 2) + f(i -1);
}
Translate this function into an iterative version:
Here is my solution:
int f(int i)
{
int prev,next,final;
prev = 0;
[Code]....
View 9 Replies
View Related
Nov 30, 2014
I am trying to translate the following recursive function into its iterative function:
int f(int i)
{
if(i < 2)
return i;
return f(i - 2) + f(i -1);
}
This is what I tried to do:
int f(int i)
{
int prev,next,final;
prev = 0;
next = 1;
if(i==1)
final = i;
[Code] .....
View 1 Replies
View Related
Nov 30, 2014
I am trying to translate the following recursive function into its iterative function:
int f(int i) {
if(i < 2)
return i;
return f(i - 2) + f(i -1);
}
This is what I tried to do:
int f(int i) {
int prev,next,final;
prev = 0;
next = 1;
[Code] ....
View 1 Replies
View Related
Nov 16, 2013
The recursive function is bolded, i got feedback and was told that the static variable made the function seem a lot like a iterative function but he did not say why.
Code:
#define MAX 100
#include <string.h>
#include <stdio.h>
int checkPalindrome(char string[MAX]);
int checkRecPalindrome(char string[MAX]);
[Code] .....
View 7 Replies
View Related
May 5, 2014
I'm writing a program that starts at a given number n and adds all the way to 2:
n + (n-2) + (n-4) + (n-6) + .....
The following is my code, it compiles but after I enter an integer the program crashes.
Code:
#include<stdio.h>
#include<stdlib.h>
int sum_even(int n);
int sum_even(int n){
if(n==1){
[Code] ....
View 11 Replies
View Related
Nov 9, 2013
the functions checks if the word is a palindrome like"level" "madam" etc. but with input "dfdfdfdffdfd" my recursive function fails.
Code:
/* main.c - Created on: Nov 9, 2013 - Author: Kaj P. Madsen*/
#define MAX 100
#include <string.h>
#include <stdio.h>
int checkPalindrome(char checkString[MAX]);
int checkRecPalindrome(char checkString[MAX], int strLgt, int a);
}
[code]....
results from "dfdfdfdffdfd" added some print to see that its the variables a and strLgt not functioning properly
Code:
dfdfdfdffdfd.
The word is not a palindrome(iterative)
strLgt: 11 a: 0
a: d strLgt: dstrLgt: 10 a: 1
a: f strLgt: fstrLgt: 9 a: 2
a: d strLgt: dstrLgt: 8 a: 3
a: f strLgt: fstrLgt: 7 a: 4
The word is palindrome (recursive)
View 4 Replies
View Related
Feb 9, 2013
I am just practicing some recursion and I am having trouble with printing out a recursive function in main. Here is what I have:
Code:
// This function adds the squares 4, 5 = 4*4 + 5*5 recursiveley
int recursive_sumSquares(int m, int n) {
if (m < n) {
return m*m + recursive_SumSquares(m+1, n);
}
else {
return m*m;
[Code]...
I am getting an error that says undefined reference to 'recursive_SumSquares'
View 2 Replies
View Related
Jun 10, 2013
I am working on a problem that requires a nest for loop to be converted to a recursive function. I am going to provide just the code instead of the entire program.
Code:
for (R1=1; R1 <+3, R1++){ //for loop
printf (something);
}
// the recursive function
void loopR1 (int R1, int max){
if (R1 <= max){
printf (something);
[Code]...
when calling the recursive function in main i am using the following statement...
loop r1(1,3)
View 4 Replies
View Related
Jan 23, 2013
this function has to check if an array is not descending it has to be recursive and it's space complexity has to be O(log(n))
Code:
int is_sorted(int a[ ], int n) {
int check=n-1;
if(n==1 || n==0) return 1;
if(a[check]<a[check-1])return 0;
else return(is_sorted(a,n-1));
}
this is what i came up with. i know it's space complexity is O(n) how do i make it O(log(n))?
View 2 Replies
View Related
Oct 31, 2014
I am trying to learn so much C as possible by my own. I have learned a bit already and made my first game. I made a tictactoe with a 3x3 board that works great. But now i want to make it a NxN-board. But the problem right now is my checkwinner-function. I really don't know how I should check the diagonal for winner in the for loop. Earlier I have checked the diagonal manually like you can see down there.
Code:
for (Row = 0; Row < BOARDSIZE; Row++) {
if ((game[Row][0] == 'X' && game[Row][1] == 'X' && game[Row][2] == 'X') ||
(game[0][Row] == 'X' && game[1][Row] == 'X' && game[2][Row] == 'X') ||
(game[0][0] == 'X' && game[1][1] == 'X' && game[2][2] == 'X') ||
(game[0][2] == 'X' && game[1][1] == 'X' && game[2][0] == 'X'))
return 1;
I think I need two foor-loops in each other too and need to check the spots in the board like 0,0, 0+1,1, 0+2,2. Is that even possible?
View 3 Replies
View Related
Dec 13, 2014
I am trying to convert a recursive function to a loop. However, it is not working.
//recursive function
int function(int x){
if (x % 3 == 0){
[Code]....
View 1 Replies
View Related
Oct 8, 2013
how to write a non-recursive JSON parser function using libjson in C++. libjson is quite useful librray. It's source code of libjson comes with an example C++ parser but it uses recursion to parse JSON arrays and child nodes. I am looking for parser function based on libjson that does not use recursion to parse JSON arrays and child nodes.
View 1 Replies
View Related
May 13, 2014
I'm writing the function as described in the title but it isn't quite working. It works as long as the value passed is less than the parent (going left) but when the value should be placed to the right, it doesn't actually insert the node.
template <typename T>
void BST<T>::insertHelper(BST<T>::BinNodePtr &subRoot, const T& item) {
BinNode *newNode;
BinNode *parent;
BinNode *child;
[Code] ....
FYI, I've commented out setting the children of the new leaf to NULL because the constructor already does that.
View 1 Replies
View Related
Nov 28, 2014
I tried my best but I can't figure out the problem. At the last part of "createArray", I output the final array created. I mean it to repeat once but then it repeat more times than I expect. createArray is an iterative function. If it repeats 3 times, than at last the array created which fulfil the criterion would be printed out 3+1 times.
I am trying to create an array with 3 numbers 5 times, resulting in a 2D array. The 3 numbers in a array are picked from 0 - 5. I enter createArray(5,3,5). Then these 5 arrays are compared with each other to see if there are repetitions. If there are, the whole process begins again, 5 arrays with 3 numbers each will be picked again and compared with each other. If there are no repetitions at last, there 5 arrays would be printed out.
void deleteArray(int** array){
delete[] array;
}
int** createArray(int simu_times, int randomrun,int numberofrun){
vector<Int_t>fChosenRun;
int** Array = new int*[simu_times];
[Code] ....
View 8 Replies
View Related
Apr 12, 2014
Task: To create a recursive function to sort elements in an array of integers.
The function must start the sorting from the first element, and the recursion calls must go on until the last element in the array is sorted. In each step of recursion, the function must work only with the subset of array elements that have not been sorted yet.
Problem: I am getting a 'Segmentation fault: 11' in the recursive call to the function (please, see the code below).
Environment: Mac, OS X = Mavericks
Code:
////////////////////////////////////////////////////////////////////////////////
////////// Recursively sorting an array of ints.
////////// Arguments: array, array size, index from where to start sorting.
void sort_incr_array_int_recursive(int a[], int size, int i){
int tmp, idx_small, small = a[i];
// Locating the smaller element in the array section.
[Code] ....
View 4 Replies
View Related
Mar 6, 2015
I am trying to create a function to find the entry point of my map.But my program does not seem to be working correctly. I am trying to place a dot there because I will have to use recursion to fill up the whole map. But I'm not asking for the answer. I just need writing a function to locate the starting row for the first column of the maze (first non zero element). My code seems to have a bug in it when I try and call my function FindEntry. What I am trying to do is read in column by column until I can find the starting point and then place a dot there with ASCII character 249. This is my code so far:
Code:
#include<stdio.h>
#include<Windows.h>
#define HEIGHT 21
#define WIDTH 78
[Code]....
If you try and run it, it will give you a bug. But if you comment out the FindEntry function in the main it will work and look like this:
View 7 Replies
View Related
Mar 15, 2014
Eg. User input : abcde
Program Output : edcba
I keep on getting weird ASCI symbol in return, I couldn't achieve what I need, and tried debugging for days,
Code: char ar[20];
int len,n=0;
printf("enter the string to be reversed :
");
[Code].....
View 5 Replies
View Related
May 18, 2013
I am supposed to write a recursive function which find the partition of a number n ,, for example if n=3 , it should print 1 1 1 , 1 2 , 3
I wrote the program but i am getting the two partition 1 2 and 2 1 which are the same ,, how can i avoid that ?
this is the code :
void PrintPartition( int n , int A[] , int j ) {
if( n<=0 ) {
printArray( A, j );
return ;
} for( int i=1 ; i<=n ; i++ ) {
A[j]=i;
PrintPartition( n-i , A ,j+1 );
} }
the first call of the function is : PrintPartition( n , A , 0 ) ;
View 3 Replies
View Related
Dec 23, 2013
I have this example problem in my school coursebook. How this program works? It determines the highest digit in a number.
#include <iostream>
using namespace std;
int m(int n) {
int a,b;
[Code] ....
View 4 Replies
View Related
Mar 8, 2014
Write a recursive function called sumover that has one argument n which is an unsigned integer. the function returns double value which is the sum of reciprocals of the first n positive integers =.
for example sumover 1 returns 1.0
sumover 2 returns 1.5 like 1/1+1/2
View 11 Replies
View Related