TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Java - Tìm số nguyên m lớn nhất sao cho 1 + 2 + 3 + ... + m < n (n nhập từ bàn phím).

Viết chương trình nhập vào số nguyên n từ bàn phím. Tìm và in ra màn hình số nguyên m lớn nhất sao cho 1 + 2 + 3 + ... + m < n.

Yêu cầu: Chương trình phải kiểm tra và yêu cầu người dùng nhập vào n >= 0.

test php

Bài giải

-------------------- ######## --------------------

Bài giải.
package vong_lap_do_while;

import java.util.Scanner;

public class TimSo {

	public static void main(String[] args) {
		int m = 0, n, sum = 0;
		Scanner scanner = new Scanner(System.in);
		
		/*
		 * Nhập vào số nguyên n 
		 * và kiểm tra nếu n < 0 đúng thì quay lại thực hiện câu lệnh bên trong do
		 * ngược lại thoát ra khỏi vòng lặp.
		 */
		do {
			System.out.println("Nhập vào số nguyên n: ");
			n = scanner.nextInt();
		} while (n < 0);
		
		// tìm số m
		while ((sum + m) < n) {
			sum += ++m;	// tăng m lên 1 đơn vị và tính sum = sum + m
			System.out.print(m);	// System.out.print(): hiển thị trên cùng 1 dòng
			if ((sum + m) < n) {
				System.out.print(" + ");
			}
		}
		
		if (sum > 0) {
			System.out.println(" = " + sum + " <= " + n);
		}
		
		System.out.println("m lớn nhất = " + m);
	}

}
Kết quả sau khi biên dịch chương trình:

ketqua timsom PNG

Giải thích hoạt động của chương trình trên:

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Bước 1: Nhập vào số nguyên và kiểm tra nếu số vừa nhập nhỏ hơn 0 thì nhập lại. Vì tôi nhập vào số 5 > 0 nên điều kiện trong do - while sai nên sẽ thoát khỏi vòng lặp.

Bước 2: Thực hiện vòng lặp while. Lúc này sum = 0m = 0sum + m = 0 < 5 (đúng) nên sẽ tăng m lên 1 đơn vị và sum = sum + m = 1.

Bước 3: Hiển thị m = 1 ra màn hình. Sau đó câu lệnh if ((sum + m) < n) sẽ được thực thi, vì sum + m = 1 + 1 =  2 < 5 (đúng) nên sẽ hiển thị dấu "+" ra màn hình.

Bài viết này được đăng tại [free tuts .net]

Bước 4: Quay lại bước 2. Lúc này sum =  1m = 1sum + m = 2 < 5 (đúng) nên sẽ tăng m lên 1 đơn vị và sum = sum + m = 1 + 2 = 3.

Bước 5: Quay lại bước 3: Hiển thị m = 2 ra màn hình. Sau đó câu lệnh if ((sum + m) < n) sẽ được thực thi, vì sum + m = 3 + 2 =  5 < 5 (sai) nên sẽ không thực hiện câu lệnh bên trong if.

Bước 6: sum = 5 > 0 (đúng) nên câu lệnh System.out.println(" = " + sum + " <= " + n); sẽ được thực thi và kết quả là dòng 1 + 2 = 3 <= 5 sẽ được hiển thị ra màn hình.

Bước 7: Cuối cùng dòng lệnh System.out.println("m lớn nhất = " + m); được thực thi và sẽ hiển thị kết quả m lớn nhất = 2.

 

 

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top