コード例 #1
0
ファイル: Ex_1_1_18.c プロジェクト: zykhbl/Algorithms4Edition
int test_ex_1_1_18(int argc, const char * argv[]) {
    int a = 2, b = 25, m = 3, n = 11;;
    printf("%d\n", mystery(a, b));
    printf("%d\n", mystery(m, n));
    
    printf("%d\n", mystery2(a, b));
    printf("%d\n", mystery2(m, n));
    
    return 0;
}
コード例 #2
0
ファイル: Ex_1_1_18.c プロジェクト: zykhbl/Algorithms4Edition
/*
 a的倍数增加方式(偶数时增加一倍,奇数时增加一倍,再加1),类似于b的递减(偶数时减少一半,奇数时减1后,再减少一半),所以最终mystery(a, b) = a * b
 */
int mystery(int a, int b) {
    if (b == 0) {
        return 0;
    }
    
    if (b % 2 == 0) {
        return mystery(a + a, b / 2);
    }
    
    return mystery(a + a, b / 2) + a;
}
コード例 #3
0
ファイル: mystery.c プロジェクト: clamiax/misc
/* multiplies a for b times recursively */
int mystery(int a, int b)
{
   if(b == -1)
      return -a;
   else if(b == 1)
      return a;
   else {
      if(b > 1)
         return a + mystery(a, b - 1);
      else
	 return -a + mystery(a, b + 1);
   }
} /* eof mystery() */
コード例 #4
0
ファイル: mystery.c プロジェクト: clamiax/misc
int main()
{
   int x, y;

   printf("Enter two integers: ");
   scanf("%d%d", &x, &y);

   printf("The result is %d\n", mystery(x, y));

   return 0;
} /* E0F main */
コード例 #5
0
ファイル: mystery1.c プロジェクト: mkalin/courses
int main() {
  /* sample run */
  unsigned int n = 305419896;
  unsigned char c = 171;

  printf("sizeof(unsigned int) = %lu \n\n", sizeof(unsigned int));
  printf("sizeof(unsigned char) = %lu \n\n", sizeof(unsigned char));

  unsigned result = mystery(n, 2, c);
  printf("%u ===> %u\n", n, result);
  return 0;
}
コード例 #6
0
ファイル: ex8.c プロジェクト: jkleid/taocp_in_c
int main() { mystery(); }