Lập trình C: Bài tập phần vòng lặp (Loop)


Đăng ký nhận thông báo về những video mới nhất

Bài tập 1:

Hãy nhập vào một số N với điều kiện 0<N<100. Yêu cầu người dùng nhập cho đến khi thỏa mãn điều kiện.

Bài tập 2:

Cho dãy số vô hạn: 50, 51, 53, 56, 60, ... Hãy in ra số thứ 2019.

Bài tập 3:

1. In ra các số từ 1 đến 100.

2. In ra các số từ 100 đến 1.

3. In ra các số từ 1 đến 100 mà chia hết cho 3.

4. In ra các số từ 99 đến 1 mà chia hết cho 7.

5. Bạn hãy viết chương trình tính tổng của 50 số 1, 2, 3, ..., 50.

6. Bạn hãy viết chương trình tính tổng của 50 số 50, 49, 48, ..., 1.

7. Bạn hãy viết chương trình tình tổng của 50 số chẵn bắt đầu từ 2.

8. Bạn hãy viết chương trình tính tổng của 20 số 5, 10, 15, ..., 100.

9. Bạn hãy viết chương trình tính n! (n!=1*2*3*...*n).

10. Bạn hãy nhập vào một số N bất kỳ và kiểm tra xem N có phải số nguyên tố hay không? (Số nguyên tố là một số nguyên dương lớn hơn 1 và chỉ chia hết cho 1 và chính nó, ví dụ: 2, 3, 5, 7, 11, ...)

11. Bạn hãy nhập vào một số N bất kỳ và kiểm tra xem N có phải số hoàn hảo hay không? (Số hoàn hảo là số nguyên dương có tổng các ước số nhỏ hơn nó bằng chính nó, ví dụ: 1+2+3 = 6, vậy 6 là số hoàn hảo)

12. Bạn hãy viết chương trình in ra 10 số đầu tiên của dãy số Fibonacci. Hãy cho biết số thứ 13 có giá trị bao nhiêu?

Bài tập 4:

Bạn hãy viết chương trình giải phương trình bậc 2 ax2+bx+c=0 dạng menu như sau:

1. Nhập 3 hệ số a, b, c

2. Xác định nghiệm

3. Thoát

Yêu cầu cụ thể:

Khi người dùng chọn 1 thì yêu cầu người dùng nhập vào từ bàn phím 3 hệ số a, b và c.

Khi người dùng chọn 2 thì bạn hãy xác định nghiệm của phương trình dựa trên các hệ số đã nhập từ mục 1.

Khi người dùng chọn 3 thì bạn hãy cho thoát khỏi trương trình.

Nếu người dùng không chọn mục 1, 2 hay 3 thì yêu cầu người dùng chọn cho đúng.

Bài tập 5:

1. Viết chương trình in ra bảng mã ASCII.

2. Viết chương trình tính tổng bậc 3 của N số nguyên đầu tiên.

3. Viết chương trình nhập vào một số nguyên rồi in ra tất cả các ước số của số đó.

4. Viết chương trình tính tổng nghịch đảo của N số nguyên đầu tiên theo công thức: S = 1 + 1/2 + 1/3 + … + 1/N

5. Viết chương trình tính tổng bình phương các số lẻ từ 1 đến N.

6. Viết chương trình tìm USCLN, BSCNN của 2 số nguyên dương.

7. Viết chương trình vẽ một tam giác cân rỗng bằng các dấu *.

8. Viết chương trình vẽ hình chữ nhật rỗng bằng các dấu *.

9. Viết chương trình tính giá trị của đa thức

Pn = anxn + an-1xn-1 + … + a1x1 + a0

Hướng dẫn đa thức có thể viết lại

Pn = (…(anx + an-1)x + an-2)x + … + a0

Như vậy trước tiên tính anx + an-1, lấy kết quả nhân với x, sau đó lấy kết quả nhân với x cộng thêm an-2, lấy kết quả nhân với x … n gọi là bậc của đa thức.

10. Viết chương trình nhập vào 1 số từ 0 đến 9. In ra chữ số tương ứng. Ví dụ: nhập vào số 5, in ra "Năm".

11. Viết chương trình phân tích một số nguyên N thành tích của các thừa số nguyên tố.

12. Viết chương trình tính dân số của một thành phố sau 10 năm nữa, biết rằng dân số hiện nay là 6.000.000, tỉ lệ tăng dân số hàng năm là 1.8% .

13. Viết chương trình tìm các số nguyên a, b, c, d khác nhau trong khoảng từ 0 tới 10 thỏa mãn điều kiện a*d*d = b*c*c*c.

14. Viết chương trình tính tổ hợp N chập K (với K <= N): C=((N-k+1) * (N-k+2)*…N)/1*2*3*…*k

Trong đó C là một tích gồm k phần tử với phần tử thứ I là (N-k+1)/I. Để viết chương trình này, bạn dùng vòng lặp For với biến điều khiển I từ giá trị đầu là 1 tăng đến giá trị cuối là k kết hợp với việc nhân dồn vào kết quả C.

15. Viết chương trình giải bài toán cổ điển sau:

Trăm trâu, trăm cỏ

Trâu đứng ăn năm

Trâu nằm ăn ba,

Ba trâu già ăn một

Hỏi mỗi loại trâu có bao nhiêu con.

16. Viết chương trình giải bài toán cổ điển sau:

Vừa gà vừa chó

Bó lại cho tròn,

Ba mươi sáu con

100 chân chẵn

Hỏi có bao nhiêu gà, bao nhiêu chó

17. Viết chương trình in ra bảng cửu chương.

18. Viết chương trình xác định xem một tờ giấy có độ dày 0.1 mm. Phải gấp đôi tờ giấy bao nhiêu lần để nó có độ dày 1m.

19. Viết chương trình tìm các số nguyên tố từ 2 đến N, với N được nhập vào.

20. Viết chương trình nhập vào x, n tính:

- sprt(x + sqrt(x + (sqrt(x))) (n dấu căn)

- 1 + x/2 + ... x^n/(n+1)

21. Viết chương trình xác định tất cả các cặp số nguyên dương (A, B) sao cho A<B<1000 và (A2+B2+1)/AB là một số nguyên.

22. Viết chương trình trò chơi Hi-Lo. Máy tính nghĩ ra một số nguyên dương bất kỳ (có thể cho một giới hạn là số phải nhỏ hơn MAX_INT). Người chơi sẽ đoán một số. Máy tính sẽ trả lời: "Số lớn hơn số phải tìm", "Số nhỏ hơn số phải tìm" hoặc "Chính xác, bạn đã thắng". Sau khi đã đoán đúng số cần tìm, máy tính sẽ tính và xuất ra số lần đoán và dừng chương trình.

23. Nhập một số nguyên dương vào từ bàn phím, sau đó in ra màn hình tất cả các số nguyên tố nằm trong khoảng từ 0 cho đến số nguyên dương đó.

24. Tìm tất cả các phương án kết hợp 3 loại giấy bạc 1000đ, 2000đ, 5000đ với nhau để cho ra số tiền N đ, với N nhập từ bàn phím. N>=1000đ và N%1000==0. Đưa ra phương án tối ưu ứng với số tờ tiền là ít nhất.

25. Tính tổng của các chữ số của một số tự nhiên n.

26. Hiển thị các chữ số của một số tự nhiên n theo thứ tự từ phải sang trái.

27. Tìm ký số lớn nhất của một số tự nhiên n.

Bài tập 6:

Bạn hãy dùng vòng lặp (Loop) viết các chương trình in ra các hình dạng như sau:

1. Hình dạng 1:

*
* *
* * *
* * * *
* * * * *

2. Hình dạng 2:

* * * * *
* * * *
* * *
* *
*

3. Hình dạng 3:

            *
         * *
      * * *
   * * * *
* * * * *

4. Hình dạng 4:

* * * * *
   * * * *
      * * *
         * *
            *

5. Hình dạng 5:

            *
         * * *
      * * * * *
   * * * * * * *
* * * * * * * * *

6. Hình dạng 6:

* * * * * * * * *
   * * * * * * *
      * * * * *
         * * *
            *

7. Hình dạng 7:

* * * * * * * * *
   * * * * * * *
      * * * * *
         * * *
            *
         * * *
      * * * * *
   * * * * * * *
* * * * * * * * *

Bài tập 7:

Discussions

It has been known that 2019/12/31 was Tuesday. Please write a project to find what day of a week of Tom’s birthday.

Sunday is represented by a value of 0, Monday is represented by a value of 1, Tuesday is represented by a value of 2, Wednesday is represented by a value of 3, Thursday by a value of 4, a Friday by a value of 5, and a Saturday by a value of 6.

Input Format: A single line contains 3 space-separated positive integers, representing the year, month and day when Tom was born

Constraints: The inputs are valid date from 1950-01-01 to 2020-12-31

Output Format: A single number from 0 to 6, representing the day of week of Tom's birthday.

Sample Input 0

1950 1 1
Sample Output 0

0

Sample Input 1

2020 2 29
Sample Output 1

6

Solution tham khảo

#include<bits/stdc++.h>
using namespace std;

main(){
  int a,b,c,nam,ngay,tong;
  cin>>a>>b>>c;
  c=c-1;
  nam=(a-1950)*365;
  if(b==1){
    ngay=120+c;
  }else if(b==6){
    ngay=151+c;
  }else if(b==7){
    ngay=181+c;
  }else if(b==8){
    ngay=212+c;
  }else if(b==9){
    ngay=243+c;
  }else if(b==10){
    ngay=273+c;
  }else if(b==11){
    ngay=304+c;
  }else if(b==12){
    ngay=334+c;
  }
  tong = nam + ngay;
  if(b<=2){
    for(int i=1950;i<a;i++){
      if(i%4==0){
        tong++;
      }
    }
  }else{
    for(int i=1950;i<=a;i++){
      if(i%4==0){
        tong++;
      }
    }
  }
  cout<<tong%7;
}

Bài tập 8: Xâu bình đẳng

Xâu các ký tự 0 và 1 được gọi là bình đẳng nếu có độ dài chẵn và số lượng ký tự 1 ở vị trí chẵn bằng số lượng 1 ở vị trí lẻ. Ví dụ, xâu '011011' là xâu bình đẳng, cònxâu '011101' - không bình đẳng.

Yêu cầu: Cho xâu các ký tự 0, 1 độ dài lẻ và không vượt quá 200001. Hãy xác định vị trí ký tự cần xóa để xâu trở thành bình đẳng. Nếu không có cách xóa thì đưa ra số 0. Nếu có nhiều cách xóa thì đưa ra cách xóa với số thứ tự vị trí cần xóa là nhỏ nhất.

Dữ liệu vào: xâu cần xử lý.

Kết quả: Đưa ra một số nguyên - vị trí cần xóa hay số 0.

Ví dụ:

Dữ liệu vào: 0111011

Kết quả: 2

50% test xâu có độ dài không vượt quá 1000.

#include<bits/stdc++.h>
using namespace std;

int main()
{
  string s;
  getline(cin, s);
  int tong_chan=0, tong_le=0;
  for(int i=0; i<s.length(); i++){
    if(i%2==0){
      if(s[i]=='1'){
        tong_chan++;
      }
    }
    else if(i%2==1){
      if(s[i]=='1'){
        tong_le++;
      }
    }
  }
  if((tong_chan==tong_le) || (abs(tong_chan-tong_le)>=2)){
    cout<<"0";
  }
  else{
    if(tong_chan>tong_le){
      int vt=0;
      for(int i=0; i<s.length(); i+=2){
        if(s[i]=='1'){
          vt= i+1;
          break;
        }
      }
      cout<<vt;
    }
    else if(tong_le>tong_chan){
      int vt=0;
      for(int i=1; i<s.length(); i+=2){
        if(s[i]=='1'){
          vt= i+1;
          break;
        }
      }
      cout<<vt;
    }
  }
}

Bài tập 9

Nhập từ bàn phím tuổi cha và con( tuổi cha hơn tuổi con ít nhất là 25). Đưa ra màn hình bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con.

Bài tập 10

Ở 1 tòa nhà 100 tầng, coi như các quả trứng là như nhau:

  • Trứng sẽ vỡ nếu bị thả từ tầng >= N.
  • Trứng không vỡ nếu bị thả từ tầng < N.

Bạn có 2 quả trứng, hãy nêu 1 cách giải để tìm N với số lần thả trứng ít nhất.


Nếu bạn có điều thắc mắc, bạn hãy comment cho V1Study để được giải đáp.
Bài viết này được chia sẻ bởi LongDT. Nếu bạn muốn chia sẻ bài viết, bạn hãy Đăng ký làm thành viên!
« Prev
Next »
Copied !!!