思路有两个
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站制作、盂县网络推广、微信小程序定制开发、盂县网络营销、盂县企业策划、盂县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供盂县建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
1、利用Random.nextInt(n)得到处于0~n-1的随机数,加1后并按顺序放入数组。放入之前需要先判断数组中是否已经有了该数。
2、先初始化数组a[n],存放1~n的整数,然后交换任意两个位置的数任意次数,这也能得到随机。交换次数定多少,这个我没法确定。
我把第一种方法代码贴出来
static Random r = new Random();
@Test
public void test() {
printArray(getArray(20));
}
public void printArray(int[] a) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i a.length; i++) {
sb.append(a[i] + " , ");
}
System.out.print(sb.toString());
}
public int[] getArray(int n) {
int[] a = new int[n];
while ((n--) 0) {
int temp = this.getNum(a.length);
while (true n = 0) {
if (check(temp, a)) {
temp = this.getNum(a.length);
} else {
a[n] = temp;
break;
}
}
}
return a;
}
public boolean check(int t, int[] a) {
boolean flag = false;
for (int i = 0; i a.length; i++) {
if (t == a[i]) {
flag = true;
break;
}
}
return flag;
}
public int getNum(int n) {
return r.nextInt(n)+1;
}
注释我就不加了,你应该看得懂
import java.util.Scanner;
public class Test{
static public void main(String args[]){
System.out.print("输入n:");
Scanner s=new Scanner(System.in);
int n=s.nextInt(), sum=0;
for(int i=1;i=n;i++){
System.out.print(i1?"+"+i:i);
sum+=i;
}
System.out.println("="+sum);
}
}
输入n:20
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20=210
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(f(n));
}
public static int f(int n) {
if (n == 1)
return 1;
else {
return n + f(n - 1);
}
}
}