Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ

Bài tập lập trình C có lời giải

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (652.37 KB, 46 trang )

BÀI 1: CÁC KHÁI NIỆM CƠ BẢN
- Hằng, biến và các kiểu dữ liệu
- Toán tử và biểu thức
- Nhập - xuất
1. Bài tập hướng dẫn
1.1. Bài toán 1
Tính tổng s=max+min+ch+n+k+d và hiển thị kết quả. Với max là hằng số nguyên 100, min
là hằng số thực 1.5, ch là một ký tự, n là một số nguyên dương nhỏ hơn 1000, k là một số nguyên
lớn hơn 50000 và d là một số thực.
Bảng mô tả mô hình dữ liệu (hằng, biến).
Tên
Mô tả
Kiểu dữ liệu
Nguồn
Dữ liệu vào
max
Hằng số nguyên giá trị 100
int
Định nghĩa hằng
min
Hằng số thực giá trị 1.5
float
Định nghĩa hằng
ch
Ký tự
char
Bàn phím
n
Số nguyên
int
Bàn phím


k
Số nguyên
long
Bàn phím
d
Số thực
float
Bàn phím
Dữ liệu ra
s
Số thực
float
Tính toán
Các bước thực hiện
- Định nghĩa các hằng min, max.
- Khai báo các biến ch (kiểu char), n (kiểu int), k (kiểu long), d (kiểu float).
- Tính giá trị biểu thức gán cho biến s.
- Hiển thị giá trị biểu thức.
Chương trình
#include
#include
#include
#define max 100
const float min=1.5;
void main()
{
char ch;
int n;
long k;
float d,s;


cout<<"Nhap ky tu ch: "; cin>>ch;
cout<<"Nhap so nguyen duong n<1000: "; cin>>n;
cout<<"Nhap so nguyen k>50000: "; cin>>k;
cout<<"Nhap so thuc d: "; cin>>d;
s=max+min+ch+n+k+d;
cout<<"Ket qua s="<

Viết chương trình in ra màn hình 10 số tự nhiên đầu tiên. Viết chương trình tính tổng các số từ 1 đến 100. Viết chương trình tính tổng các số từ 1 đến N. Viết chương trình tổng các số chẵn từ 1 đến N. Viết chương trình tính N giai thừa. Viết chương kiểm tra xem N có phải số nguyên tố hay không. Viết chương trình ra màn hình các số nguyên tố nhỏ hơn N. Viết chương trình vẽ ra hình chữ nhật có chiều ngang là W, chiều dọc là H, với W và H là 2 số nguyên nhập từ bàn phím. Viết chương trình nhập không giới hạn số, kết thúc khi nhập vào số 0. Viết chương trình tìm số hạng thứ N của dãy Fibonacci: 1 ; 1 ; 2 ; 3 ; 5 ; 8 ; 11 ; . . . {\displaystyle 1;1;2;3;5;8;11;...}

Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ
Viết chương trình tìm ước chung lớn nhất của hai số nguyên. Hai số nguyên tố cùng nhau là hai số có ước chung lớn nhất là 1. Viết chương trình nhập vào hai số và kiểm tra xem chúng có phải hai số nguyên tố cùng nhau hay không? Viết chương trình tính tổng S = 1 + 1.2 + 1.2.3 + . . . + 1.2.3... N {\displaystyle S=1+1.2+1.2.3+...+1.2.3...N}
Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ
Viết chương trình đếm các chữ số chẵn của nguyên N. Viết chương trình nhập vào số nguyên N và tìm số nguyên m lớn nhất sao cho 1 + 2 + 3 + . . . + m < N {\displaystyle 1+2+3+...+m
Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ
Có 3 loại tờ tiền 1000 đồng, 2000 đồng và 5000 đồng và cần một số tiền A không quá 50000 đồng. Viết chương trình nhập vào số A (tròn nghìn) và in ra tất cả phương án có thể. Cho bài toán cổ sau: Vừa gà vừa chó, bó lại cho tròn, ba mươi sáu con, một trăm chân chẵn. Viết chương trình tìm số con mỗi loại. Cho bài toán cổ sau:Trâu đứng ăn năm. Trâu nằm ăn ba. Lụ khụ trâu già, ba con một bó. Trăm trâu ăn cỏ. Trăm bó no nê. Hỏi đến giảng đề, ngô nghê như điếc. Viết chương trình tìm số con mỗi loại. Cho dãy số 1 ; 2 ; 3 ; 4 ; . . . ; N {\displaystyle 1;2;3;4;...;N}
Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ
tạo thành S = 1 − 2 + 3 − 4 + . . . N {\displaystyle S=1-2+3-4+...N}
Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ
. Viết chương trình nhập số nguyên N và tính S. Một công ty quyết định sản xuất ti vi có chính xác N điểm ảnh, biết N điểm ảnh được tính bằng cách lấy điểm ảnh chiều dài nhân với điểm ảnh chiều rộng. Viết chương trình xác định kích thước của màn hình ti vi sao cho chiều dài và chiều rộng chênh lệnh nhau ít nhất (có thể bằng nhau). Viết chương trình tính S = 2 + 2 + 2 + . . . 2 + 2 {\displaystyle S={\sqrt {2+{\sqrt {2+{\sqrt {2+...{\sqrt {2+{\sqrt {2}}}}}}}}}}}
Hay viết chương trình Cho biết 1 số nguyên dương bất kỳ có giá trị 50000 la số chẵn hay số lẻ
với N dấu căn Một tờ giấy có độ dày X mi-li-mét. Viết chương trình tính xem phải gấp đôi tờ giấy bao nhiêu lần để đạt được tối thiểu độ dày là Y mét. Viết chương trình chuyển đổi một số từ hệ thập phân sang hệ nhị phân. Viết chương trình nhập số năm hiện tại, tuổi hai cha con (cha lớn hơn con ít nhất 20 tuổi, nếu nhập sai yêu cầu nhập lại) và trả lời câu hỏi: "Vào năm thì tuổi cha gấp đôi tuổi con?".

Viết chương trình in ra màn hình bảng cửu chương N.

Viết chương trình in ra N hàng của tam giác Pascal.

Viết chương trình in ra tất cả các ký tự có mã ASCII từ M đến N.

Cho 4 chữ số 1, 2, 3 và 4. Có bao nhiêu số có 3 chữ số tạo thành từ 4 chữ số 1, 2, 3, 4 và đó là những số nào, viết chương trình thực hiện yêu cầu trên.

Gửi tiết kiệm ngân hàng số tiền X đồng với lãi suất N %/tháng. Để nhận được số tiền ít nhất là B đồng thì phải gửi tối thiểu bao nhiêu tháng. Viết chương trình giải quyết bài toán trên trong trường hợp không tính lãi kép.

Bài viết hôm nay mình sẽ hướng dẫn các bạn cách viết chương trình kiểm tra số nguyên dương có toàn chữ số chẵn hay không. Nào chúng ta cùng bắt đầu thôi !

  • Input

  •  
  • Output

  •  

Cách kiểm tra số nguyên dương có toàn chữ số chẵn

Cách làm là chúng ta sẽ viết một hàm check để kiểm tra số nguyên dương có toàn chữ số chẵn, hàm check sẽ trả về kiểu bool.Trong hàm check ta kiểm tra lần lượt từng chữ số của số nguyên dương đang xét. Nếu ta gặp một số lẻ thì lập tức trả về false và kết thúc hàm. Nếu duyệt hết các chữ số của số nguyên dương rồi nhưng vẫn không trả về giá trị, thì số dương đó sẽ toàn số lẻ. Ta trả về giá trị true cho hàm.

Code tham khảo:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include

#include

using namespace std;

bool check(int n) {

    while (n > 0) {

        int temp = n % 10;

        if (temp % 2 == 1)

            return false;

        n /= 10;

    }

    return true;

}

int main()

{

    int n;

    do {

        cout << "Nhap vao gia tri(n>=0): ";

        cin >> n;

    } while (n < 0);

    if (check(n) == true)

        cout << "YES";

    else

        cout << "NO";

    return 0;

}

Sau khi chạy ta có kết quả sau:

Nhap vao gia tri(n>=0): 246

YES

Cải thiện chương trình kiểm tra số nguyên dương có toàn số chẵn

Một cách làm khác đó là chúng ta sẽ dùng chuỗi để xử lý. Với cách này thì số nguyên dương ta nhập có thể mang giá trị rất lớn mà kiểu int,long… cũng không thể lưu được. Ý tưởng về cách làm thì cũng như trên, đó là duyệt từng chữ số nếu gặp chữ số chẵn thì ta return false. Nếu trong chuỗi không có chữ số lẻ ( tức là toàn số chẵn ) thì ta trả về true.

Bây giờ bạn đang thắc mắc là làm sao có thể kiểm tra chữ số đó là chẵn hay lẻ phải không, ta sẽ có 2 cách làm:

  • Các bạn có thể dùng if else nếu chữ số đó thuộc { ‘1’, ‘3’, ‘5’, ‘7’, ‘9’ } thì đó là chữ số lẻ và ngược lại.
  • Bạn có thể chuyển kí tự ‘1’ về số 1 bằng cách lấy kí tự ‘1’ – 48. Vì sao lại là 48 ư ? Vì 48 là mã của kí tự ‘0’. Tương tự cho các số khác.

Nếu bạn chưa biết cách nhập chuỗi trong c++ thì có thể xem lại tại đây.

Code tham khảo:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include

#include

#include

using namespace std;

bool check(char *s) {

    int length = 0;

    while (s[length] != '\0') length++;

    length--;

    for (int i = 0; i < length; i++) {

        int temp = s[i] - 48;

        if (temp % 2 == 1)

            return false;

    }

    return true;

}

int main()

{

    char *number = new char[100];

    cout << "Nhap so nguyen duong: ";

    fflush(stdin);

    fgets(number,100,stdin);

    if (check(number) == true)

        cout << "YES";

    else

        cout << "NO";

    return 0;

}

Nhap so nguyen duong: 2222222222222222222222222222222222223

NO

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !