Bài tập Lãi ngân hàng

Bài tập gửi ngân hàng và tính lãi ngân hàng là những bài tập hết sức thiết thực nhưng cũng giúp khả năng tư duy lập trình rất cao. Bài này chúng ta sẽ đi tìm hiểu một số bài về nó.

Đề bài: Một người gửi tiết kiệm không kì hạn với số tiền A đồng với lãi suất 0.3% mỗi tháng. Hỏi sau n tháng, người đó rút hết tiền thì sẽ được số tiền là bao nhiê? Biết rằng với việc gửi tiết kiệm không kì hạn thì lãi được cộng vào vốn theo từng tháng.

Đề bài khá rõ ràng, các bạn chỉ lưu ý duy nhất một điều là lãi được cộng vào vốn. Do vậy các tháng tiếp theo thì số lượng vốn của chúng ta ngày càng tăng. VD ban đầu chúng ta gửi 100 triệu, sau tháng 1 thì số tiền của chúng ta là 100 + 100 * 0.3% = 100.3 triệu (100 triệu 300 ngàn). Số tiền này sẽ là gốc của tháng tiếp theo. Vậy hết tháng 2 chúng ta có 100.3 + 100.3 * 0.3% = X (các bạn tự tính, mình hơi lười ^^ ).

Cứ như vậy các tháng sau cộng dồn vào. Từ đó ta thấy để tính số tiền sau tháng n thì chúng ta chi cần dùng một vòng lặp là xong.

#include <stdio.h>

int main()
{
	float a;
	int n, i;

	printf("Enter money start give bank: ");
	scanf("%f", &a);

	printf("Enter time (month) you want get money: ");
	scanf("%d", &n);

	for(i = 0; i < n; i++) 
	{
		a = a + a * 0.3 / 100;
	}

	printf("Your money after %d month is %.5f\n", n, a);

	return 0;
}

Rất là đơn giản phải không các bạn. Nếu các bạn chạy chương trình và nhập vào 100000000 (100 triệu) thì sau 6 tháng, chúng ta có 101813552 (101 triệu và hơn 800 ngàn) @@ Lãi quá ít =)).

Đề bài: Một người gửi tiết kiệm không kì hạn với số tiền A đồng với lãi suất 0.3% mỗi tháng. Hỏi sau bao nhiêu tháng, người đó rút hết tiền thì sẽ nhận được số tiền ít nhất là B đồng? Biết rằng với việc gửi tiết kiệm không kì hạn thì lãi được cộng vào vốn theo từng tháng.

Cũng tương nhự như bài trên, tuy nhiên bài này người ta lại hỏi thời gian để đạt được số tiền. VD ban đầu bạn gửi 100 triệu thì phải tính xem để đạt được 150 triệu bạn mất bao nhiêu thời gian gửi ngân hàng? ^^.

Do số thời gian chúng ta chưa biết nên chúng ta không thể dùng vòng lặp for để tính được. Cách tính tiền hàng tháng thì vẫn vậy nhưng sẽ không biết trước lặp bao nhiêu lần, mà lặp bao nhiêu lần đó là chúng ta phải tự tìm. Do vậy hãy nghĩ đến cách dùng vòng lặp while. Trong khi tiền chưa đủ thì cứ gửi ngân hàng thôi.

#include <stdio.h>

int main()
{
	float a, b;
	int n = 0;

	printf("Enter money start give bank: ");
	scanf("%f", &a);

	printf("Enter money you want: ");
	scanf("%f", &b);

	while(a < b) 
	{
		a = a + a * 0.3 / 100;
		n++;
	}

	printf("After %d month, you can get money\n", n);

	return 0;
}

Khá đơn giản. Hãy chạy thử nhé. Nếu bạn gửi 100 triệu thì sau 136 tháng (hơn 11 năm) bạn mới thu được hơn 150 triệu. ^^. Quá lâu. Do vậy kinh nghiệm là không nên gửi ngân hàng, nếu có tiền hãy đầu tư vào kinh doanh hoặc nhiều quá thì gửi mình bớt, mình giữ hộ 😉