int findsum(int a[],int n,int i=0,int sum=0)
{
    if(i==n) return sum;
    else
    {
        return findsum(a,n,i+1,sum+a[i])+findsum(a,n,i+1,sum);
    }
}
Exemple #2
0
long long findsum(int pl,int pr,int x)
{
    if(pl>=ll&&pr<=rr)return(sum[x]);
    else
    {
        int m=(pl+pr)/2;long long ans=0;
        if(lazy[x]!=0)pushdown(pl,pr,x);
        if(ll<=m)ans+=findsum(pl,m,2*x);
        if(rr>=m+1)ans+=findsum(m+1,pr,2*x+1);
        return ans;
    }
}
Exemple #3
0
int main()
{
	int arr[100],size,i=0;
	int a=0,b=0,s;
    scanf("%d",&size);
	while(i<size)
	{	scanf("%d",&arr[i]);
		i++;
	}
	i=0;
	//while(i<size)
//	{	printf("  %d",arr[i]);
	//	i++;
	//}
//	printf(" <-- input ends here\n");
	qsort(arr,0,size-1);
	i=0;
//	while(i<size)
	//{	printf("  %d",arr[i]);
	//	i++;
//	}


	printf("Enter the sum required\n");
	scanf("%d",&s);
	findsum(arr,size,&a,&b,s);
	printf("\nThe elements are %d %d which sums to %d",a,b,s);
}
Exemple #4
0
// do summing until reach onre int
int digroot(int x){

	while (x/10 != 0){
		x = findsum(x);
	}
	return x;
}
int main()
{
    int n=5;
    int k=100;
    int a[]={2,3,4,6,8};
    printf("%d",findsum(a,n,k));
    getchar();
    return 0;
}
int main()
{
    
    int a[]={1,2,3,4,5};
    int n=sizeof(a)/sizeof(*a);
    printf("%d",findsum(a,n));
    getchar();
    return 0;
}
Exemple #7
0
int main()
{
    int n,m,i,j,k;
    scanf("%d",&n);
    build(1,n,1);
    scanf("%d",&m);
    for(i=1;i<=m;i++)
    {
        scanf("%d",&k);
        if(k==1){scanf("%d%d%d",&ll,&rr,&xx);change(1,n,1);}
        else{scanf("%d%d",&ll,&rr);printf("%lld\n",findsum(1,n,1));}
    }
    return 0;
}
Exemple #8
0
int main()
{
    struct node *num1 = createlist();
    struct node *num2 = createlist();
    
    printlist(num1);
    printf("\n");
    printlist(num2);
    printf("\n");
    struct node *sum = findsum(num1, num2);
    printlist(sum);
    
    return 0;
}
Exemple #9
0
int main () {

    char letter;
    int sumsofar;
    printf("Enter an abitrarily long string, ending with carriage return > ");
    sumsofar = 0;
    while (letter != '\n') {
        scanf("%c", &letter);
        findsum(letter, &sumsofar);
    }
    addspace(&sumsofar);
    printf("Check sum is %c\n", (char)(sumsofar));
    return 0;
}
Exemple #10
0
int main()
{
	int num = 234;
	findsum(num);
	return 0;
}
Exemple #11
0
struct deci_tree* infoGainRecursive(int Z[500][500],int b[50][50],struct deci_tree * parent,double entr,int max1,int attr,int obj,int flag,int initattr,int a[500][500]){

    int i =0 ;
    int j;
    int modifiedA[500][500],modifiedB[50][50];
    double col3[50],col1[50],entr1[50],entropy1[50][50],gain1[50];
    int dim[2];
    if(flag == 1){
        flag = 0;
        parent->ent = entr;   
        parent->data = 0;
        for(i = 0 ; i  < attr ;i++){
            for(j = 0 ; j <  obj;j++){
                modifiedA[j][i] = Z[j][i];
            }
        }             
        findk(modifiedA,modifiedB,obj,attr);

    
    }
    
    else{

          for(i = 0 ; i  < attr ;i++){

            for(j = 0 ; j <  obj;j++){
                modifiedA[j][i] = Z[j][i];

            }
        }

        funcModiA(modifiedA,modifiedA,max1,attr,obj,parent->pos,dim);
        obj = dim[0];
        attr = dim[1];
        parent->ent = entropy(modifiedA,obj,attr,i,modifiedB[i][j],NULL);
        if(parent->ent == 0 ){
             int sd =  parent->data ;
             parent->data = modifiedA[1][attr-1];
             parent->datasetCol = attr-1;
             parent->childno = 0;        
             printf("\n\tnode %d is terminated with row value %d ,  child of %d i posotion value %d\n",parent->data , parent->pos ,sd,parent->ivalue);
             return 0;
        }
        else{
            findk(modifiedA,modifiedB,obj,attr);         
        }    
    }

    for(i= 0; i < attr-1 ; i++){
        for(j= 1 ; j <= modifiedB[i][0]; j++){    
            col3[j-1] = entropy(modifiedA,obj,attr,i,modifiedB[i][j],NULL);
        
        }
        entr1[i] =  findsum(col3,modifiedB[i][0]);
        gain1[i] =  parent->ent  - entr1[i];
    }

    int temp = max1;
    max1 = findmax(gain1,attr-1);
    parent->data = modifiedA[0][max1];
    parent->childno = modifiedB[max1][0];

    for(i = 0; i <= initattr;i++){
        if(parent->data    == a[0][i]){
            parent->datasetCol = i; 
            break;
        }    
    }

    printf("\n\tCurrent node is %d and is child of %d , through  row value %d,i position %d coloum number %d \n", parent->data,Z[0][temp],parent->pos,parent->ivalue,parent->datasetCol);
    
    for(i = 1; i <= modifiedB[max1][0] ;i++) {
        parent->c[i] = (struct deci_tree *)malloc(sizeof(struct deci_tree ));    
        parent->c[i]->pos = modifiedB[max1][i];           
        parent->c[i]->data = modifiedA[0][max1];
        parent->c[i]->ent = parent->ent;
        parent->c[i]->ivalue = i;
        infoGainRecursive(modifiedA,modifiedB,parent->c[i],parent->c[i]->ent,max1,attr,obj,flag,initattr,a);
    }

    return parent;
}