Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

C โปรแกรมตรวจสอบจำนวนหารด้วยผลรวมของหลักหารลงตัวหรือไม่


ให้ตัวเลข n เราต้องตรวจสอบว่าผลรวมของหลักหารตัวเลข n หรือไม่ ในการหาคำตอบ เราต้องรวมตัวเลขทั้งหมดโดยเริ่มจากหลักหน่วย แล้วหารตัวเลขด้วยผลรวมสุดท้าย

เช่นเดียวกับที่เรามีตัวเลข “521” ดังนั้นเราจึงต้องหาผลรวมของหลักที่จะเป็น “5 + 2 + 1 =8” แต่ 521 หารด้วย 8 ไม่ลงตัวโดยไม่เหลือเศษใดๆ

ลองมาอีกตัวอย่างหนึ่ง “60” โดยที่ “6+0 =6” ซึ่งหาร 60 ได้และไม่เหลือเศษใดๆ

ตัวอย่าง

Input: 55
Output: No
Explanation: 5+5 = 10; 55 not divisible by 10
Input: 12
Output: Yes
Explanation: 1+2 = 3; 12 is divisible by 3

แนวทางที่ใช้ด้านล่างมีดังนี้

ในการแก้ปัญหานี้ เราต้องดึงข้อมูลแต่ละหลักจากอินพุตและหาผลรวมของตัวเลขแต่ละหลัก จากนั้นตรวจสอบว่ามีการหารตัวเลขหรือไม่

  • ป้อนข้อมูล
  • นำตัวเลขแต่ละตัวจากตำแหน่งหน่วยโดยใช้และเพิ่มลงในตัวแปรผลรวมซึ่งควรเป็นศูนย์เริ่มต้น
  • หารอินพุตด้วยผลรวมของตัวเลข
  • ส่งคืนผลลัพธ์

อัลกอริทึม

In function int isDivisible(long int num)
   Step 1-> Declare and initialize temp = num, sum = 0
   Step 2-> Loop While num
      Declare and initialize k as num % 10
   Set sum as sum + k
      Set num as num / 10
   End Loop
   Step 3-> If temp % sum == 0 then,
      Return 1
   Step 4-> Return 0
      End function
In main()
   Step 1-> Declare and initialize num as 55
   Step 2-> If isDivisible(num) then,
      Print "yes "
   Step 3-> Else
Print "no "

ตัวอย่าง

#include <stdio.h>
// This function will check
// whether the given number is divisible
// by sum of its digits
int isDivisible(long int num) {
   long int temp = num;
   // Find sum of digits
   int sum = 0;
   while (num) {
      int k = num % 10;
      sum = sum + k;
      num = num / 10;
   }
   // check if sum of digits divides num
   if (temp % sum == 0)
      return 1;
      return 0;
}
int main() {
   long int num = 55;
   if(isDivisible(num))
      printf("yes\n");
   else
      printf("no\n");
      return 0;
}

ผลลัพธ์

หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

No