Giúp tính tổng 3 số lẻ gần n nhất

Nhập n và tính tổng 3 số lẻ gần n nhất. Em mới bắt đầu học nên chỉ biết tính tổng tất cả các số lẻ < n

#include<stdio.h>

int main(){
  int n , t ,a;
  int i;
  t=0;
  printf("\nEnter n = "); scanf("%d",&n);
  for(i=1;i<=n;i++){
    a = i % 2;
    if(a!=0){
      t = t + i;

    }
  }
  printf("\nTong so le  = %d",t);
}

Ai chỉ em tính 3 số lẻ gần n với

Chia trường hợp: n chẵn và n lẻ.

Nếu n lẻ thì 3 số là n và n+/-2.
Nếu n chẵn sẽ có hai đáp số.

3 Likes

anh làm mẫu giúp em đc ko ạ

Thế bạn thử đưa ra vài ví dụ và đáp án thử xem. Thấy đề hơi củ chuối rồi đó, gần nghĩa là gì?.

  • n = 1 -> Kết quả là gì?
  • n = 7 -> Kết quả là gì?
  • n = 8 -> kết quả là gì?
3 Likes

Dạ n = 1 --> 1
n = 7 --> 7 +5+3 = 15
n = 8 --> 7+5+3 = 15
n = 9 --> 9+7+5= 21
Kiểu này ạ

Sao không nói ngay từ đầu. Vậy n=3 thì đáp án là?

2 Likes

Bạn ghi thiếu đề là số lẻ gần nhất và không lớn hơn n. Làm cho @rogp10 vắt óc suy nghĩ tùm lum nên ghim hận rồi.
Chưa kể trường hợp số lẻ âm nữa.

2 Likes

Dạ đề yêu cầu nhập n >= 6 ạ

Dạ tính số lẻ gần nhất có thể bằng n ạ

nếu n >=6 thì bạn tạo 3 biến nhé:

int le1 = 1, le2 = 3, le3 = 5;

Khi n=7 thì lại gán lại:

le1=le2; 
le2=le3;
le3=n;

Tiếp tục cho tới khi n bằng đề bài.

2 Likes

Kết quả luôn là bội số của 3 và bằng số lẻ thứ 2 (ở giữa) nhân với 3.
6 \Rightarrow 5 + 3 + 1 = 3 * 3 = 9
7 \Rightarrow 7 + 5 + 3 = 5 * 3 = 15
8 \Rightarrow 7 + 5 + 3 = 5 * 3 = 15
9 \Rightarrow 9 + 7 + 5 = 7 * 3 = 21%)
...
Điều này có nghĩa là bạn chỉ cần tính số lẻ thứ 2 từ n là xong.

3 Likes

Tính hướng dẫn bạn ấy improve từ từ, từ dùng biến tới mảng tới rút gọn. Mà thôi…

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?