Ejemplo n.º 1
0
int main(void) {
    int n, Sum;
    char AddChoice;
    printf("1+2+...+n=?請輸入n=");
    scanf("%d", &n);
    fflush(stdin);
    printf("請問要做奇數和(O),偶數和(E),還是整數和(I)?請選擇:");
    scanf("%c", &AddChoice);

    switch (AddChoice) {
    case 'O':
        Sum = Odd(n);
        break;

    case 'E':
        Sum = Even(n);
        break;

    case 'I':
        Sum = TotalSum(n);
        break;

    default:
        printf("選擇錯誤\n");
        return -1;
    }

    printf("總和為%d\n", Sum);
    /*  system("pause");  */
}
void srowfftshifta(float* in,int rows,int columns,float* out){	
	switch(rows%2){
		case 0 : Pair(in,rows,columns,out); break; 
		case 1 : Odd(in,rows,columns,out); break; 
		default : break;
	}
}
Ejemplo n.º 3
0
	/***************************************************************************
	*  L O G   D O U B L E   F A C T   (Log of double factorial)               *
	*                                                                          *
	*  Return log( n!! ) where the double factorial is defined by              *
	*                                                                          *
	*      (2 n + 1)!! = 1 * 3 * 5 * ... * (2n + 1)    (Odd integers)          *
	*                                                                          *
	*      (2 n)!!     = 2 * 4 * 6 * ... * 2n          (Even integers)         *
	*                                                                          *
	*  and is related to the single factorial via                              *
	*                                                                          *
	*      (2 n + 1)!! = (2 n + 1)! / ( 2^n n! )       (Odd integers)          *
	*                                                                          *
	*      (2 n)!!     = 2^n n!                        (Even integers)         *
	*                                                                          *
	***************************************************************************/
	double LogDoubleFact( int n )   // log( n!! )
	{
		int    k = n / 2;
		double f = LogFact( k ) + k * LogTwo;
		if( Odd(n) ) f = LogFact( n ) - f;
		return f;
	}
Ejemplo n.º 4
0
void partitionOdd(int value)
{
 printf("partitionOdd %d\n",value);
 int * arr = malloc(value * sizeof(int));
 int ind = 0;
 Odd(value,arr,ind);
 free(arr);
}
Ejemplo n.º 5
0
int sos_smaller_dist_abcd (int i, int k,
                           const Lia_ptr a, const Lia_ptr b, const Lia_ptr c)
{
  int result, s;
#ifdef __DEBUG__
  if (sos_proto_flag)
    print ("sos_smaller_abcd (%d,%d,...)\n", i, k); 
#endif
  if (i < k)
    s = 0;
  else
    { /* swap i <--> k */
      s = i;
      i = k;
      k = s;
      s = 1;
    }
  do
    {
      lia_push (a);
      lia_push (sos_lia (i, 1));
      lia_push (sos_lia (k, 1));
      lia_minus ();
      lia_times ();
      lia_push (b);
      lia_push (sos_lia (i, 2));
      lia_push (sos_lia (k, 2));
      lia_minus ();
      lia_times ();
      lia_push (c);
      lia_push (sos_lia (i, 2));
      lia_push (sos_lia (k, 2));
      lia_minus ();
      lia_times ();
      lia_plus ();
      lia_plus ();
      result = lia_sign (lia_popf ());
      if (result)
        break;
      result = lia_sign (c);
      if (result)
        break;
      result = lia_sign (b);
      if (result)
        break;
      result = lia_sign (a);
      if (result)
        break;
      Assert_always (FALSE);
    } once;
  if (Odd (s))
    result = -result;
#ifdef __DEBUG__
  if (sos_proto_flag)
    print  ("sos_smaller_dist_abcd result: %d\n", result);
#endif
  return (result);
}
Ejemplo n.º 6
0
void Odd(int n,int * arr,int ind)
{
 int val;
 if(n == 0)
  {
  partprint(arr,ind);
  return;
  }

for(val=1;val<=n;val++)
  {
    arr[ind]=val;
   if(arr[ind]%2==1)
     {
    Odd(n-val,arr,ind+1);
     }
  }
}
Ejemplo n.º 7
0
inline bool Even(const Type &a)
{
    return !Odd(a);
}
Ejemplo n.º 8
0
int TotalSum(int U) {
    return Odd(U) + Even(U);
}