uva 701 - The Archeologists' Dilemma

待我称王封你为后i 2022-05-12 23:28 219阅读 0赞

题目链接:uva 701 - The Archeologists’ Dilemma

题目大意:给出x,求一个e,使得x * 10 ^ y ≤ 2 ^ e < (x + 1) * 10 ^ y。

解题思路:问题可以转换成log2(x) + y * log2(10) ≤ e < log2(x + 1) + y*log2(10),

然后枚举y,判断条件。

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main () {
  5. int x, y;
  6. double l, r, d, a, b;
  7. while (scanf("%d", &x) == 1) {
  8. y = x;
  9. int c = 0;
  10. while (y) {
  11. c++;
  12. y /= 10;
  13. }
  14. l = log(x) / log(2);
  15. r = log(x + 1) / log(2);
  16. d = log(10) / log(2);
  17. for (int i = c + 1; ; i++) {
  18. a = l + i * d;
  19. b = r + i * d;
  20. if (ceil(a) <= floor(b)) {
  21. printf("%.0lf\n", ceil(a));
  22. break;
  23. } else if (i == 1000000) {
  24. printf("no power of 2\n");
  25. break;
  26. }
  27. }
  28. }
  29. return 0;
  30. }

发表评论

表情:
评论列表 (有 0 条评论,219人围观)

还没有评论,来说两句吧...

相关阅读

    相关 UVA11752 The Super Powers

    最近几天的状态着实不好,数电设计的答辩不能更逗,万幸是终于到家了,看到群里有各种群赛十分开心,希望能找回刷题的动力,调整下状态。 这道题是很久前做的,细节记不太清了。。。

    相关 uva 1623——Enter The Dragon

    题意:有n个装满水的湖,可以预知将来m天下雨情况,每次下满一个湖,或者不下,不下雨的时候可以让某个湖变干,问是否存在一种方案使得每次下雨之前湖总是干的。 思路:贪心

    相关 UVA 12099 The Bookcase(dp)

    题意: 有N本书,第i本书有一个高度Hi和宽度Wi,现要求构建一个三层的书架,你必须把所有书放在书架上。设三层高度(该层最高的书的高度)之和为h,书架总宽度(即每层总宽度