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

ผลคูณของ N กับหลักคี่ที่มากที่สุดในภาษา C

ได้รับตัวเลข N ต้องคูณตัวเลขกับหลักคี่ที่มากที่สุดของมัน หากไม่มีหลักคี่ให้พิมพ์ -1

เช่น เรากำหนด N เป็น "153" และหลักคี่ที่มากที่สุดในตัวเลขนี้คือ 5 ดังนั้นผลลัพธ์จะเป็นผลคูณของ 153 กับ 5 คือ 153 * 5 = 765 และถ้าตัวเลขไม่มีหลักคี่เช่น 246 เอาต์พุตต้องเป็น -1

ตัวอย่าง

อินพุต — N = 198

เอาต์พุต — 1782

คำอธิบาย — 198 * 9 = 1782

อินพุต — N = 15382

เอาต์พุต — 76910

คำอธิบาย — 15382 * 5 = 76910

วิธีการแก้ปัญหา

  • รับอินพุต N
  • วนทุกหลักและค้นหาหลักคี่
  • หาหลักคี่ที่มากที่สุด
  • คูณหลักคี่มากที่สุดกับตัวเลขต้นฉบับ N
  • ถ้าไม่มีหลักคี่ อัปเดตผลลัพธ์เป็น -1
  • คืนผลลัพธ์

อัลกอริทึม

Start
In function int largestodd(int n)
    Step 1: ประกาศและกำหนด large = -1
    Step 2: Loop While n > 0
        Set digit = n % 10
        ถ้า digit % 2 == 1 และ digit > large แล้ว Set large = digit
        Set n = n / 10
    Step 3: Return large
In function int findproduct(int n)
    Step 1: ประกาศและกำหนด large = largestodd(n)
    Step 2: ถ้า large == -1 แล้ว Return -1
    Step 3: Return (n * large)
In function int main()
    Step 1: กำหนด n = 15637
    Step 2: พิมพ์ผลลัพธ์จากการเรียก findproduct(n)
Stop

ตัวอย่างโค้ด

#include <stdio.h>

int largestodd(int n) {
    // ถ้าหลักทั้งหมดเป็นเลขคู่ เราจะคืนค่า -1
    int large = -1;
    while (n > 0) {
        // ตรวจสอบจากหลักสุดท้าย
        int digit = n % 10;
        // ถ้าหลักปัจจุบันเป็นคี่และมากกว่า large
        if (digit % 2 == 1 && digit > large)
            large = digit;
        n = n / 10;
    }
    // คืนค่าหลักคี่สูงสุดของ n
    return large;
}

int findproduct(int n) {
    int large = largestodd(n);
    // ถ้าไม่มีหลักคี่ใน n
    if (large == -1)
        return -1;
    // ผลคูณของ n กับหลักคี่สูงสุด
    return (n * large);
}

int main() {
    int n = 15637;
    printf("%d\n", findproduct(n));
    return 0;
}

ผลลัพธ์

หากรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ —

109459