j.a.b.
BAN USERjust a beginner(j.a.b.)
#include<iostream>
#include<malloc.h>
#include<string.h>
using namespace std;
int flag =0;
void calculation(int *a,char *s,int n)
{
int i,output=a[0];
for(i=0; i< n-2 ;i++){
if(s[i]=='+') {
output +=a[i+1];
}
else output-=a[i+1];
}
if(output == a[n-1]){
flag = 1;
for(i=0; i<n-2 ;i++){
cout<<a[i]<<s[i];
}
cout<<a[i]<<" = "<<a[i+1]<<endl;
}
}
void swap (char *x, char *y)
{
char temp;
temp = *x;
*x = *y;
*y = temp;
}
void prm(int *a , int n, char *s, int begin, int end)
{
int j;
char was[256];
bzero(was, 256);
if (begin == end){
//cout<<s<<endl;
calculation(a,s,n);
}
else
{
for (j = begin; j <= end; j++)
{
if (!was[*(s+j)]) {
swap((s+begin), (s+j));
prm(a,n,s, begin+1, end);
swap((s+begin), (s+j));
was[*(s+j)] = 1;
}
}
}
}
void pnc (int *a, int n)
{
int i;
char *s=new char[n-2];
for(i=0;i<n-2;i++) s[i] = '+';
//cout<<s<<endl;
calculation(a,s,n);
for(i=0;i<n-2;i++){
s[i]= '-';
//cout<<"s before prm = "<<s<<endl;
prm(a,n,s,0,n-3);
}
}
main()
{
int n;
cout<<"Enter number of elements\n";
cin >>n;
int *a=new int[n];
cout<<"Enter set\n";
for(int i=0;i<n;i++) cin>> a[i];
cout<<"\n";
pnc(a,n);
if(flag ==0 ) cout<<"No solution\n";
}
#include<iostream>
#include<malloc.h>
#include<string.h>
using namespace std;
main()
{
char *a= new char[20];
cout<<"Enter string \n";
cin >>a;
cout<<"\n\n";
int len =strlen(a);
int i;
if(len%2 ==0) {
for(i=0;i< len ;i+=2){
cout<<((a[i]-'0')*2+(a[i+1]-'0'));
}
}
else{
cout<<a[0];
for(i=1;i< len ;i+=2){
cout<<((a[i]-'0')*2+(a[i+1]-'0'));
}
}
cout<<"\n";
}
#include<iostream>
using namespace std;
typedef struct node_targ{
char data;
struct node_targ *next;
}Node;
Node *change(Node *root)
{
Node *temp;
temp = root->next->next;
root->next->next= root;
root = root->next;
root->next->next = temp->next;
temp->next = root->next->next->next;
root->next->next->next=temp;
return root;
}
main()
{
Node n5 = {'e',NULL};
Node n4 = {'d',&n5};
Node n3 = {'c',&n4};
Node n2 = {'b',&n3};
Node n1 = {'a',&n2};
Node *root;
root = &n1;
cout<<"\n------------------before--------------------\n";
while(root){
cout<<root->data;
if(root->next != NULL) cout<<"->";
root = root->next;
}
cout<<"\n------------------after---------------------\n";
root = change(&n1);
while(root){
cout<<root->data;
if(root->next != NULL) cout<<"->";
root = root->next;
}
cout<<"\n";
}
/*Assuming subarray should be continuous*/
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include <stdio.h>
using namespace std;
main()
{
int n,i,cstart=0,pstart=0,end=0,temp;
cout<<"enter size\n";
cin>>n;
int *a = new int[n];
cout<<"enter array\n";
for(i=0;i<n;i++) cin>>a[i];
int sum=0,diff=999;
for(i=0;i<n;i++){
if((sum <= 0) && (a[i]>=0)){
sum = a[i];
cstart = i;
}
else sum+=a[i];
if(sum == 0) {
end =i;
pstart = cstart;
break;
}
temp = sum;
if(temp < 0) temp *= -1;
if(temp<diff) {
diff = temp;
end =i;
pstart = cstart;
}
}
for(i=pstart;i<=end;i++) cout<<a[i]<<" ";
cout<<endl;
}
#include<stdio.h>
main()
{
int N;
printf("Enter N\n");
scanf("%d",&N);
printf("Enter matrix\n");
int a[N][N],i,j,index,row;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
scanf("%d",&a[i][j]);
}
}
index =0;
for(i=0;i<N;i++){
if(a[i][index]==1){
for(j=index;j<N;j++){
if(a[i][j] ==0 || j==N-1 ){
index =j;
row = i+1;
break;
}
}
}
}
printf("row=%d\n",row);
}
/*Time complexity = O(n)*/
#include<iostream>
#include<malloc.h>
using namespace std;
int *repeat(int *a,int start,int n)
{
int i,cstart=0,pstart=0,end=0,*ret;
ret = (int*)malloc(3*sizeof(int));
int sum=0,sm=-999;
for(i=start;i<n;i++){
if((sum <= 0) && (a[i]>=0)){
sum = a[i];
cstart = i;
}
else sum+=a[i];
if(sum>sm) {
sm = sum;
end =i;
pstart = cstart;
}
}
ret[0]=sm;
ret[1]=pstart;
ret[2]=end;
return ret;
}
void largest_sum_subarray(int *a,int n)
{
int *ret,**comp,i;
ret = (int*)malloc(3*sizeof(int));
comp= (int**)malloc(2*sizeof(int*));
for(i=0;i<3;i++){
comp[i] = (int*)malloc(3*sizeof(int));
}
ret = repeat(a,0,n);
if( ret[1] == 0 && ret[2] == n-1){
comp[0] = repeat(a,0,n-1);
comp[1] = repeat(a,1,n);
if(comp[0][0] > comp[1][0]) {
for(i=comp[0][1];i<=comp[0][2];i++) cout<<a[i]<<" ";
}
else{
for(i=comp[1][1];i<=comp[1][2];i++) cout<<a[i]<<" ";
}
}
else{
if(ret[0] < 0 ) cout<<"Largest sum is <= -1\n";
else{
for(i=ret[1];i<=ret[2];i++) cout<<a[i]<<" ";
}
}
cout<<endl;
}
main()
{
int n,i;
cout<<"enter size\n";
cin>>n;
int *a = new int[n];
cout<<"enter array\n";
for(i=0;i<n;i++) cin>>a[i];
largest_sum_subarray(a,n);
}
#include<stdio.h>
#include<malloc.h>
typedef struct node_targ
{
int data;
struct node_targ *left;
struct node_targ *right;
} node;
void bfs( node *root)
{
node **a;
int head = 0, tail = 1;
a=(node**) malloc(50*sizeof(node*));
a[0] = root;
while(head != tail){
root = a[head];
if(root!=NULL){
if(root->right !=NULL) a[tail++]=root->right;
if(root->left !=NULL) a[tail++]=root->left;
}
head++;
}
for(head = tail-1; head>=0 ;head--){
printf("%d ",a[head]->data);
}
}
main()
{
node n7 = {7, NULL, NULL};
node n6 = {6, NULL, NULL};
node n5 = {5, NULL, NULL};
node n4 = {4, NULL, NULL};
node n3 = {3, &n6, &n7};
node n2 = {2, &n4, &n5};
node n1 = {1, &n2, &n3};
bfs(&n1);
}
#include<stdio.h>
#include<malloc.h>
#include<math.h>
#include <string.h> /* strcat */
#include <stdlib.h> /* strtol */
int *array,counter = 0;
void byte_to_binary(int x,int n)
{
static char b[9];
b[0] = '\0';
int z;
for (z = 128; z > 0; z >>= 1)
{
strcat(b, ((x & z) == z) ? "1" : "0");
}
int i = 8-n;
while(i<8){
printf("%c",b[i]);
i++;
}
}
int greycode(int n )
{
int k,i;
array[counter++]=0;
array[counter++]=1;
for(i=1 ; i < n; i++){
k = counter -1;
while(k>=0){
array[counter++] = array[k--] | 1<<i;
}
}
}
main()
{
int n,i;
printf("\nEnter n\n");
scanf("%d",&n);
array = (int*)malloc(pow(2,n)*sizeof(int));
greycode(n);
printf("\n------------------------greycode------------------------------\n");
for(i=0;i<counter;i++){
byte_to_binary(array[i],n);
printf("\n");
}
}
- j.a.b. September 11, 2012