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

บวก 1 ให้ตัวเลขที่แสดงด้วย Array แบบ Recursive


ได้รับ Array ที่เป็นตัวแทนของตัวเลข (แต่ละสมาชิกคือ 1 หลัก) บวก 1 ให้ตัวเลขนั้น (Increment) หลักสำคัญที่สุดอยู่ Index 0

วิธีบวก 1:

  • เริ่มจากท้าย Array การบวกคือเพิ่มหลักสุดท้าย 4->5
  • ถ้าหลักสุดท้ายเป็น 9 ทำให้เป็น 0 และ Carry = 1
  • รอบถัดไปตรวจสอบ Carry หากบวกได้ 10 ทำเหมือนข้อ 2
  • หลังบวก Carry แล้ว ตั้ง Carry = 0 สำหรับรอบต่อไป
  • ถ้าการบวกทำให้ Array ขยาย ให้เติม 1 ไปข้างหน้า

เช่น Array [7, 6, 3, 4] แทน 7634 บวก 1 ได้ 7635 -> [7, 6, 3, 5]

ตัวอย่าง

Input: [7, 6, 9, 9] Output: [7, 7, 0, 0]
Input: [4, 1, 7, 8, 9] Output: [4, 1, 7, 9, 0]

คำอธิบาย บวก 1 ตัวสุดท้าย หากน้อยกว่า 9 หากเป็น 9 ทำให้เป็น 0 และ Recursive ตัวก่อนหน้า

ตัวอย่าง

#include <iostream>
using namespace std;
void sum(int arr[], int n) {
    int i = n;
    if (arr[i] < 9) {
        arr[i] = arr[i] + 1;
        return;
    }
    arr[i] = 0;
    i--;
    sum(arr, i);
    if (arr[0] > 0) {
        cout << arr[0] << ", ";
    }
    for (int i = 1; i <= n; i++) {
        cout << arr[i];
        if (i < n) {
            cout << ", ";
        }
    }
}
int main() {
    int n = 4;
    int arr[] = {4, 1, 7, 8, 9};
    sum(arr, n);
    return 0;
}