Bội số của 5 trong C++

C là ngôn ngữ lập trình cơ bản được sử dụng cho các lĩnh vực khác nhau. Nó là một ngôn ngữ cấp cao. Nó hiệu quả, dễ sử dụng cho mục đích phát triển và có sẵn trên nhiều nền tảng khác nhau. Nếu bạn sắp trở thành một lập trình viên, ngôn ngữ lập trình C sẽ giúp bạn trong hành trình lập trình của mình. Điều quan trọng là C là cơ sở của các kiến ​​thức lập trình khác, đó là lý do tại sao nó được gọi là mẹ của mọi ngôn ngữ. Nếu bạn học Lập trình C, bạn có thể dễ dàng học tất cả các ngôn ngữ khác đang sử dụng khái niệm C

Chương trình

#include  
int main() 
{ 
   int a; 
   for (a=1; a<=10; ++a)
   {
   
     printf("%d ", a*5);
   
   } 
} 

Về cơ bản, đây là Fizzbuzz nơi bạn nên in FizzBuzz nếu nó chia hết cho cả 5 và 3, Fizz nếu nó chia hết cho 5 nhưng không chia hết cho 3 và Buzz nếu nó chia hết cho 3 nhưng không chia hết cho 5

Không có cách "đúng" để làm điều này. Bất kể bạn làm như thế nào, bạn sẽ phá vỡ một số thông lệ tốt nhất

Ghi chú

Tôi là kiểu lập trình viên thích cách tiếp cận linh hoạt đối với các tiêu chuẩn mã và thực tiễn tốt nhất. Điều này không đúng hay sai, nhưng toàn bộ văn bản sau đây được tô màu bởi cá tính của tôi. Tôi thường coi bài kiểm tra này là "bạn có hiểu khi nào nên bỏ qua các phương pháp hay nhất không" trong khi những người khác sẽ xem nó là "bạn có thể tìm ra cách thực hiện theo các phương pháp hay nhất ngay cả trong những trường hợp khó không". Không có cái nào đúng hơn cái kia

Vấn đề này dự định rất dễ hiểu, nhưng khá khó để làm nó "đẹp". Một điều bạn thường gặp trong ví dụ này là mã trùng lặp. Bạn có thể dễ dàng xây dựng nó đi, nhưng thường phải trả giá bằng khả năng đọc

Nếu tôi thiết kế một mã thực hiện những gì bạn yêu cầu, tôi sẽ hoàn toàn hài lòng với giải pháp bạn đã cung cấp và sau đó chuyển sang vấn đề tiếp theo. Nó không thực sự đáng để dành nhiều thời gian cho. Đó cũng là điều nhà tuyển dụng nhìn vào khi họ cho bạn bài kiểm tra này. Bạn có dành hàng giờ và hàng ngày chỉ để đảm bảo mã của mình tuân theo tất cả "các phương pháp hay nhất" ngay cả khi mức tăng rất nhỏ hay bạn tạo mã hoạt động và có thể đọc được và tiếp tục ngay khi nó đủ tốt?

Một số ví dụ tôi đã thấy để tránh kiểm tra trước xem nó có chia hết cho cả hai số không và sau đó kiểm tra riêng chúng là chuỗi nối. Một cái gì đó như giả này

string str = ""
if n % 5 = 0: str += "Fizz"
if n % 3 = 0: str += "Buzz"
print str

Trông đẹp, phải không?

char str[9] = "";
if(n%5 == 0) strcat(str, "Fizz");
if(n%3 == 0) strcat(str, "Buzz");
puts(str);

Mặc dù trông không quá tệ. Nhưng nó có thực sự đáng không? . Tôi không nói rằng mã này cực kỳ nguy hiểm, nhưng điểm mấu chốt ở đây là cách bạn lập luận. Rủi ro đó có thực sự, thực sự đáng để nỗ lực tránh một số mã trùng lặp không?

Một số người cấu trúc lại các điều kiện thành các chức năng, chẳng hạn như bool dividable_by_15(int n) bởi vì "thật tốt khi tách chức năng thành các chức năng riêng biệt". Một số thậm chí sẽ đi xa như thế này

bool dividable_by(int n, int d) { return (n%d) == 0; }
bool dividable_by_3(int n) { return dividable_by(n, 3); }
bool dividable_by_5(int n) { return dividable_by(n, 5); }
bool dividable_by_15(int n) { return dividable_by_3(n) && dividable_by_5(n); }

Nhưng nó có thực sự cần thiết trong trường hợp này? . Nhưng đối với hầu hết các trường hợp, tôi sẽ nói rằng đây là một trường hợp khá rõ ràng về kỹ thuật quá mức.

Bài kiểm tra này không tập trung nhiều vào việc xem liệu bạn có thể làm theo tất cả các phương pháp hay nhất hay không. Nó giống một bài kiểm tra tính cách hơn. Một số nhà tuyển dụng muốn bạn làm tất cả các loại công việc, trong khi những người khác sẽ thích hơn nếu bạn có thể để nguyên mã khi nó làm những gì nó nên làm.

Khi nói đến mã của bạn, tôi thực sự chỉ có một ý kiến ​​phản đối, đó là bạn đang bỏ qua dấu ngoặc nhọn cho vòng lặp for. Tôi sẽ không bao giờ làm điều đó, trừ khi cơ thể là một đường đơn giản. Tuy nhiên, tôi sẽ bỏ qua dấu ngoặc nhọn cho câu lệnh if. Một số người sẽ đồng ý về điều cuối cùng, và một số sẽ không. Những người ủng hộ việc luôn sử dụng dấu ngoặc nhọn ngay cả đối với các câu lệnh đơn lẻ thường sử dụng lập luận rằng nó làm giảm nguy cơ mắc lỗi nếu bạn cần thêm một câu lệnh bổ sung vào phần thân. Một lập luận khác là tính nhất quán, rằng bạn luôn phải cố gắng làm điều tương tự ở mọi nơi. Theo tôi thì những yếu tố đó không đáng để thêm dòng, nhưng này, đó là tôi. Bạn làm bạn

for (int i = 1; i <= n; i++) {
    if (i % 15 == 0)
         printf("Multiple of 3 and 5\n");
    else if (i % 5 == 0)
        printf("Multiple of 5\n");
    else if (i % 3 == 0)
        printf("Multiple of 3\n");
    else
        printf("%d\n", i);
}

Điều đó có vẻ tốt hơn với tôi. Tôi thậm chí sẽ xem xét việc có if như một lớp lót

    if      (i % 15 == 0) printf("Multiple of 3 and 5\n");
    else if (i % 5 == 0)  printf("Multiple of 5\n");
    else if (i % 3 == 0)  printf("Multiple of 3\n");
    else                  printf("%d\n", i);

Tôi cũng sẽ xem xét trích xuất dòng mới, như thế này

    if      (i % 15 == 0) printf("Multiple of 3 and 5");
    else if (i % 5 == 0)  printf("Multiple of 5");
    else if (i % 3 == 0)  printf("Multiple of 3");
    else                  printf("%d", i);
    printf("\n");

Vì nó chỉ là một dòng mới, bạn có thể thay đổi printf("\n") thành chỉ puts("")

NHƯNG - đây là vấn đề - Theo tôi, tôi đã dành rất nhiều năng lượng cho vấn đề này. . )

Là một người cầu toàn, tôi đang cố gắng thực hiện các tiêu chuẩn tốt nhất cao nhất

Tôi đã đọc một câu trích dẫn trả lời câu hỏi này một cách hoàn hảo. "Mù quáng làm theo các phương pháp hay nhất không phải là phương pháp hay nhất"

"Các phương pháp hay nhất" có mục đích cung cấp một cách rất đơn giản để hoàn thành một số mục tiêu. Nếu mã của bạn đáp ứng mục đích đó mà không tuân theo các phương pháp hay nhất, tại sao lại thay đổi nó?

Làm cách nào để kiểm tra bội số của 5 trong C?

Sử dụng toán tử mô đun. if (num % 5 == 0) //số là bội số của 5. khác // số không phải là bội số của 5.

Làm thế nào để tìm bội số của một số trong C?

// Nhắc người dùng nhập phạm vi dương do { printf("Nhập phạm vi (số nguyên dương). "); scanf("%d", &range); } while (range Nếu giá trị của range là âm, vòng lặp sẽ lặp lại để yêu cầu người dùng nhập một . Khi một phạm vi tích cực đã được nhập vào, chúng tôi in bảng cửu chương.

Làm thế nào để viết bội số của 3 trong C?

Triển khai .
#include .
sử dụng không gian tên std;
void findMultiples(int n){
for(int i = 0; i <= n; i++)
nếu(i % 3 == 0 && i % 5 == 0)
cout<

Làm cách nào để kiểm tra xem số có phải là bội số của 3 và 5 trong C không?

if (i % 15 == 0) printf("Bội của 3 và 5");