HDU 2045 不容易系列之(3)—— LELE的RPG难题(最简洁代码没有之一,数学大法好)

有些题其实有很多种方法,利用数学往往有奇效,并且极为简洁,高效


这个题就是中学的环形涂色问题,是有公式的







最简形式如下

#include<stdio.h>
#include<math.h>

int main(void)
{
  int n;
  while (scanf("%d", &n) != EOF) {
    printf("%0.f\n", n==1?3:(n%2==0?pow(2.0, n) + 2:pow(2.0, n) - 2));
  }
  return 0;
}


当n=1时,直接为k种颜色

除此之外,为奇数时2^n-2,

  为偶数时2^n+2.


翻译代码如下


#include<stdio.h>
#include<math.h>

int main(void)
{
  int n;

  while (scanf("%d", &n) != EOF) {
    if (n == 1) {
      printf("3\n");
    } else {
      if (n % 2==0) {
        printf("%0.f\n", pow(2.0, n) + 2);
      } else {
        printf("%0.f\n", pow(2.0, n) - 2);
      }
    }
  }

  return 0;
}


发布了81 篇原创文章 · 获赞 39 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章