day02

1.打卡题:数位拆分+ 奇数判断

spackage daka;

/*最小的整数,X

* X 是 2019的倍数

* x的每一位数字都是奇数

*

* 数位拆分

*/

public class jishubs {

public static void main(String[] args) {

for(int i =18171;i<Integer.MAX_VALUE;i+=2019) {

if(isJ(i)) {

System.out.println(i);

break;

}

}

}

private static boolean isJ(int num) {

while(num >0) {

int digit = num % 10;//只需要判断余数是否为奇数

if(digit % 2 ==0) {

return true;

}

num /= 10; // 每次取它的下一位

}

return false;

}

}

2.求含有100个约数的整数

for(int i=1;i<202222;i++) {

int cnt =0;//含有100个余数的数字,所以每次循环要放在循环体内

for(int j=1;j<=Math.sqrt(i);j++) {//只需要判断到一半,

//即可舍去 (2,3,3,2)的重复计算的

if(i % j==0) {

cnt+=2;

if(i == j) {

cnt--;

}

}

}

if(cnt == 100) {

System.out.println(i);

break;

}

}

}

3.求数组两两相乘再相加

30%:样例

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

int a [] = new int [n];

for(int i=0;i<a.length;i++) {

a[i] = sc.nextInt();

}

int sum =0;

//a.length表示最后一个数不需要再x前面的数

for(int i=0;i<a.length-1;i++) {

for(int j=i+1;j<a.length;j++) {

sum += a[i] * a[j];

}

}

System.out.println(sum);

}

太妙了这个方法

package daka;

import java.util.Scanner;

/*

* 给一个数组求它们两两相乘在相加;

*

* 先将数组每个元素相加,求和

* 每次减去它本身,并乘上它本身

*/

public class qiuhe {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

long s = 0;//记录数组的总和

int arr [] = new int [n];

long count =0;

for(int i =0;i<n;i++) {

arr[i] = sc.nextInt();

s+=arr[i];

}

for(int i=0;i<n;i++) {

count = count+ (s-arr[i]) * arr[i];

s = s- arr[i];

}

System.out.println(count);

sc.close();

}

}

4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

螺上螺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值