fork download
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int i, j;
  6. long dec; /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
  7. int bit[32]; /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */
  8.  
  9. clrscr(); /* เคลียร์หน้าจอ */
  10. printf("Decimal Number : "); /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
  11. scanf("%ld", &dec); /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
  12. i = 0; /* กำหนดค่าเริ่มต้นของ Array */
  13. /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
  14. do {
  15. bit[i++] = dec % 2; /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */
  16.  
  17. /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
  18. /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
  19. dec = dec / 2;
  20.  
  21. } while (dec > 0); /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */
  22.  
  23. /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
  24. /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
  25. /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
  26. /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
  27. for(j = i - 1; j >= 0; j--)
  28. printf("%d", bit[j]);
  29.  
  30. printf("\n");
  31. return 0;
  32.  
  33. }
Success #stdin #stdout 0.04s 25832KB
stdin
<!DOCTYPE html>
<html lang="th">
<head>
  <meta charset="UTF-8">
  <title>EXP Level Calculator</title>
  <style>
    body {
      font-family: sans-serif;
      padding: 2rem;
      max-width: 600px;
      margin: auto;
    }
    input, button {
      padding: 0.5rem;
      font-size: 1rem;
      margin-top: 0.5rem;
    }
    #result {
      margin-top: 1rem;
      font-weight: bold;
    }
  </style>
</head>
<body>
  <h2>คำนวณเลเวลจาก EXP</h2>

  <label for="level">เลเวลปัจจุบัน:</label><br>
  <input type="number" id="level" min="0" max="50"><br>

  <label for="exp">EXP ที่มี:</label><br>
  <input type="number" id="exp" min="0"><br>

  <button onclick="calculate()">คำนวณ</button>

  <div id="result"></div>

  <script>
    const expTable = [
      5, 10, 15, 20, 25, 30, 35, 40, 45, 50,
      55, 65, 75, 85, 95, 105, 120, 135, 150, 165,
      180, 210, 240, 270, 300, 330, 390, 450, 510, 570,
      630, 750, 870, 990, 1110, 1230, 1381, 1532, 1683, 1834,
      1985, 2158, 2331, 2504, 2677, 2850, 3035, 3220, 3405, 3590,
      3775
    ];

    function calculate() {
      const levelInput = document.getElementById("level");
      const expInput = document.getElementById("exp");
      const resultDiv = document.getElementById("result");

      let level = parseInt(levelInput.value);
      let exp = parseInt(expInput.value);

      if (isNaN(level) || isNaN(exp) || level < 0 || level >= expTable.length) {
        resultDiv.textContent = "กรุณากรอกข้อมูลให้ถูกต้อง";
        return;
      }

      let remainingExp = exp;

      while (level + 1 < expTable.length) {
        const nextExp = expTable[level + 1];
        if (remainingExp >= nextExp) {
          remainingExp -= nextExp;
          level++;
        } else {
          break;
        }
      }

      resultDiv.textContent = `สามารถอัปได้ถึงเลเวล ${level} และเหลือ EXP ${remainingExp}`;
    }
  </script>
</body>
</html>
stdout
#include <stdio.h>

int main(void)
{
int i, j;
long dec;  /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
int bit[32];  /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */

    clrscr();  /* เคลียร์หน้าจอ */
    printf("Decimal Number : ");  /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
    scanf("%ld", &dec);  /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
    i = 0;  /* กำหนดค่าเริ่มต้นของ Array */
    /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
    do {
        bit[i++] = dec % 2;  /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */

        /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
        /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
        dec = dec / 2;

    } while (dec > 0);  /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */

    /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
    /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
    /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
    /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
    for(j = i - 1; j >= 0; j--)
        printf("%d", bit[j]);

printf("\n");
return 0;

}