#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define siz 10
char as[siz];
int string_to_int(char as[], int len, int i, int sum){
if(i == len) return sum;
sum = sum*10 + (as[i] - '0');
string_to_int(as, len, i+1, sum);
}
int main()
{
while(gets(as)){
int len = strlen(as);
cout<<string_to_int(as, len, 0, 0)<<endl;
}
return 0;
}
Saturday, August 17, 2013
String to Integer using Recursion.
Reverse Integer using Recursion.
#include <iostream>
using namespace std;
int reverse_int(int n, int res){
if(n == 0) return res;
res = res*10 + (n%10);
reverse_int(n/10, res);
}
int main()
{
int n;
while(cin>>n){
cout<<reverse_int(n,0)<<endl;
}
return 0;
}
Given two integer start and end. Find the sum start to end(inclusive) using recursion.
#include <iostream>
using namespace std;
int sum(int start, int end){
if(start>end) return 0;
return start + sum(start+1, end);
}
int main()
{
int start, end;
while(cin>>start>>end){
cout<<sum(start, end)<<endl;
}
return 0;
}
Make a block of characters using Recursion
#include <iostream>
#include <cstdio>
using namespace std;
void make_block(char c, int width, int height, int w){
if(height == 0) return;
else if(width == 0) {
puts("");
make_block(c, w, height-1, w);
} else {
cout<<c;
make_block(c, width-1, height, w);
}
}
int main()
{
int width, height;
char c;
while(cin>>c>>width>>height){
make_block(c, width, height, width);
}
return 0;
}
Given a list of integers. Join and print them using Recursion.
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
#define siz 100
string as[siz];
string join_list(string as[], int n, int i){
if(n == i) return "";
return as[i] + join_list(as, n, i+1);
}
int main()
{
int n;
while(cin>>n){
for(int i=0; i<n; i++)
cin>>as[i];
cout<<join_list(as, n, 0);
}
return 0;
}
Given an array of integers. Add one to all the integers using Recursion.
#include <iostream>
#include <cstdio>
using namespace std;
#define siz 100
int a[siz];
void add_one(int a[], int n){
if(n<0) return;
a[n]+=1;
add_one(a, n-1);
}
int main()
{
int n;
freopen("input.txt", "r", stdin);
while(cin>>n){
for(int i=0;i<n;i++){
cin>>a[i];
}
add_one(a,n-1);
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
}
return 0;
}
Given a string. Find the String length using Recursion.
#include <iostream>
#include <cstdio>
using namespace std;
#define siz 100
char as[siz];
int find_length(char as[], int i){
if(as[i]=='\0') return i;
find_length(as,i+1);
}
int main()
{
while(gets(as)){
cout<<find_length(as,0)<<endl;
}
return 0;
}
Subscribe to:
Comments (Atom)