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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章