给出一个长度为n+1的列表,它的数值范围从1到njava字符转数字,其中一个数字是重复的,你必须找到重复的数字。这个问题非常类似于在数组中查找缺少的数字。在这篇文章中,我将分享一个java程序和算法,以找到1到n个数字之间的重复数字。
算法
1.计算列表中所有数字的总和。
2.计算列表中唯一数的大小n,并使用算术级数公式n*(n+1)/2
3.从第一步减去第二步中所得到的数值,你将得到重复的数字。
Java程序
import java.util.List;
import java.util.ArrayList;
public class DuplicateNumberProgram {
public static void main(String args[]) {
// Creating the list
List numbers = new ArrayList();
// Add numbers from 1 to n
for(int i=1; i < 40; i++) {
numbers.add(i);
}
// adding duplicate number into the list
numbers.add(35);
DuplicateNumberProgram obj = new DuplicateNumberProgram();
int duplicateNumber = obj.getDuplicateNumber(numbers);
System.out.println(duplicateNumber);
}
public int findSum(List numbers) {
int sum =0;
for(int number : numbers) {
sum += number;
}
return sum;
}
public int getDuplicateNumber(List numbers) {
int n = numbers.size()-1;
int total = findSum(numbers);
int duplicateNum = total - (n * (n+1)/2);
return duplicateNum;
}
}
产出:
35
这就是今天的全部内容,请在评论中提到,如果您有任何问题java字符转数字,请查找Java中1到n个数字之间的重复编号。
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。