java - 用两个数字的特定数字总和排列数字的算法
问题描述
我目前正在尝试创建一个算法,该算法应该能够将数字与特定数字总和对齐。例如,在 1 到 500 之间的数字和为 13 的数字。有人可以给我一些关于如何进行的建议吗?
我目前的进展:
public class Digitsum{
static int Digitsum2(int number) { //method to find out the digit sum from numbers between 1 and 500
int sum = 0;
if(number == 0){
return sum;
} else {
sum += (number%10);
Digitsum2(number/10);
}
return sum;
}
static int Digitsum13(int x) { //method to line up the numbers with a digit sum of 13
while (x <= 500) {
x++;
Digitsum2(x);
}
return x;
}
public static void main(String[ ] args) {
Digitsum13(13);
}
}
解决方案
您想查找特定范围内的所有数字(在本例中为 1-500),其中各个数字的总和为特定目标总和(在本例中为 13)并打印它们的列表。
数字总和类:
public class Digitsum {
static void digitSum(int target)
{
System.out.println("Target: " + target);
for(int i = 1; i <= 500; i++)
{
int currsum = 0;
int currnum = i;
while(currnum > 0 )
{
currsum += currnum%10;
currnum /= 10;
}
if( currsum == target)
{
//print each match
System.out.println(i);
}
}
}
public static void main(String[] args) {
System.out.println("Starting iteration from 1-500");
digitSum(13);
}
}
测试用例:
从1-500目标开始迭代:13 49 58 67 76 85 94 139 148 157 166 175 184 193 229 229 238 247 256 265 274 274 274 283 292 319 328 337 346 346 355 364 373 373 373 373 382 391 409 418 418 418 427 427 427 43644454444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444色4444.444444444444444444页
从 1-500 开始迭代目标:2 2 11 20 101 110 200
从 1-500 开始迭代目标:19 199 289 298 379 388 397 469 478 487 496
推荐阅读
- angular - Angular 11 中未激活子路由
- html - html(引导页面)中的视频横幅布局不正确
- python - 灰色错误 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY
- swift - 两个问题 1. 没有辅助结果 2. 无法插入新的连接插座
- arrays - 如何在“C”中的任何函数内声明全局变量?
- ssh-tunnel - 使用 PgAdmin 4 设置 SSH 隧道
- javascript - 如何在 django 静态文件中导入节点包(静态文件夹中的任何自定义 js 文件)?
- reactjs - 直接调用我的自定义获取组件,而无需使用基于 useState 的变量
- javascript - 验证数字范围
- c# - 如何不调试引用的 dll?