java - 将 3 和 5 的倍数相加直到 n
问题描述
这是我的第一个问题,希望我得到适当的回答。这是来自hackerrank网站的一个问题。
问题:将 3 和 5 的倍数相加直到“N”
样本输入 0
100
样本输出 0
2318
我的代码:
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t = in.nextInt();
int sum=0,j=3,k=5;
for(int a0 = 0; a0 < t; a0++)
{
int n = in.nextInt();
while(j<n)
{
sum=sum+j;
j+=3;
}
while(k<n)
{
sum=sum+k;
k+=5;
}
System.out.println(sum);
sum=0;
}
}
}
这段代码给了我一个错误的输出。请注意这个问题。
解决方案
要知道一个数是否是另一个数的倍数,最简单的方法是将一个数除以另一个数并检查模数。你永远不会那样做。
我会建议这样的事情:
import java.util.Scanner;
public class Main {
private static final int THREE = 3;
private static final int FIVE = 5;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t = in.nextInt();
int sum=0;
for(int a0 = 0; a0 <= t; a0++)
{
if (a0 % THREE == 0 || a0 % FIVE == 0) {
sum += a0;
}
}
System.out.println(sum);
}
}
推荐阅读
- php - PHP 从 URL 获取 Twitter 用户名(正则表达式)
- php - DD MM.MMM 坐标到 PHP 中的十进制
- javascript - 在赛普拉斯测试中导入具有窗口访问权限的模块
- java - 将配置文件从 Tomcat 复制到项目目录时出错:目录无效 /opt/tomcat/conf/Catalina
- reactjs - 如何在不转义每个字符的情况下呈现充满特殊字符的页面
- ruby - 在 Big Sur 上安装自制 ruby 时出现“ld: library not found for -lSystem”
- html - 如何使用css仅在内部填充颜色的社交媒体图标
- if-statement - Tableau 中的分组计算
- multithreading - Flask:多线程时如何写入 SQLAlchemy DB?
- javascript - 我如何将字段并排放置在嵌入中