📜  不使用%运算符的3和5的倍数

📅  最后修改于: 2021-04-29 13:19:24             🧑  作者: Mango

编写一个简短的程序,在新行上打印从1到n的每个数字。

  1. 对于3的每一个倍数,请打印“ 3的倍数”而不是数字。
  2. 对于5的每一个倍数,请打印“ 5的倍数”而不是数字。
  3. 对于数字为3和5的倍数,请打印“ 3的倍数。5的倍数”。而不是数字。

例子:

Input  : 15 
Output : 1
         2
         Multiple of 3.
         4
         Multiple of 5.
         Multiple of 3.
         7
         8
         Multiple of 3.
         Multiple of 5.
         11
         Multiple of 3.
         13
         14
         Multiple of 3. Multiple of 5.

这个想法是从1迭代到n,并通过将3和5加到当前的倍数来跟踪3和5的倍数。如果当前数字与倍数匹配,我们将相应地更新输出。

C++
// C++ program to print multiples
// of 3 and 5 without using % operator.
#include 
using namespace std;
 
void findMultiples(int n)
{
    int a = 3; // To keep track of multiples of 3
    int b = 5; // To keep track of multiples of 5
    for (int i = 1; i <= n; i++)
    {
        string s = "";
 
        // Found multiple of 3
        if (i == a)
        {
            a = a + 3; // Update next multiple of 3
            s = s + "Multiple of 3. ";
        }
 
        // Found multiple of 5
        if (i == b)
        {
            b = b + 5; // Update next multiple of 5
            s = s + "Multiple of 5.";
        }
 
        if (s == "")
            cout << (i) << endl;
        else
        cout << (s) << endl;
    }
}
 
// Driver Code
int main()
{
    findMultiples(20);
 
    return 0;
}
 
// This code is contributed
// by Sach_Code


Java
// Java program to print multiples of 3 and
// 5 without using % operator.
import java.io.*;
 
class GFG
{
    static void findMultiples(int n)
    {
        int a = 3;  // To keep track of multiples of 3
        int b = 5;  // To keep track of multiples of 5
        for (int i=1; i<=n; i++)
        {
            String s = "";
 
            // Found multiple of 3
            if (i==a)
            {
                a = a + 3;  // Update next multiple of 3
                s = s + "Multiple of 3. ";
            }
 
            // Found multiple of 5
            if (i==b)
            {
                b = b+5;  // Update next multiple of 5
                s = s + "Multiple of 5.";
            }
 
            if (s == "")
                System.out.println(i);
            else  System.out.println(s);
        }
    }
 
    public static void main (String[] args)
    {
        findMultiples(20);
    }
}


C#
// C# program to print multiples of 3 and
// 5 without using % operator.
using System;
 
public class GFG {
     
    static void findMultiples(int n)
    {
         
        // To keep track of multiples of 3
        int a = 3;
         
        // To keep track of multiples of 5
        int b = 5;
        for (int i = 1; i <= n; i++)
        {
            String s = "";
 
            // Found multiple of 3
            if (i == a)
            {
                 
                // Update next multiple of 3
                a = a + 3;
                s = s + "Multiple of 3. ";
            }
 
            // Found multiple of 5
            if (i == b)
            {
                 
                // Update next multiple of 5
                b = b + 5;
                s = s + "Multiple of 5.";
            }
 
            if (s == "")
                Console.WriteLine(i);
            else
                Console.WriteLine(s);
        }
    }
 
    // Driver code
    public static void Main ()
    {
        findMultiples(20);
    }
}
 
// This code is contributed by Sam007.


PHP


Javascript


输出:

1
2
Multiple of 3. 
4
Multiple of 5.
Multiple of 3. 
7
8
Multiple of 3. 
Multiple of 5.
11
Multiple of 3. 
13
14
Multiple of 3. Multiple of 5.
16
17
Multiple of 3. 
19
Multiple of 5.