每日java5-32

  1. 对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) =
    123412341234,repeat(20,2) = 2020.给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2,
    k2),请你来比较v1和v2的大小。

public class text {

public static void main(String[] args) {

Scanner
sc = new Scanner(System.in);

System.out.println(“输入x1,k1”);

int x1 = sc.nextInt();

int k1 = sc.nextInt();

System.out.println(“输入x2,k2”);

int x2 = sc.nextInt();

int k2 = sc.nextInt();

String
s = “”, ss = “”;

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

s += x1;

}

System.out.println(s);

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

ss += x2;

}

System.out.println(ss);

if (s.length() > ss.length()) {

System.out.println(“greater”);

} else if (s.length() < ss.length()) {

System.out.println(“less”);

} else {

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

if (s.charAt(i) == ss.charAt(i)) {

continue;

}
else if (s.charAt(i) > ss.charAt(i)) {

System.out.println(“greater”);

return;

}
else {

System.out.println(“less”);

return;

}

}

System.out.println(“equal”);

}

}

}

  1. 小易有一个长度为n的整数序列,a_1,…,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class text {

public static void main(String[] args) {

Scanner
sc = new Scanner(System.in);

System.out.println(“输入数组长度:”);

int num = sc.nextInt();

System.out.println(“输入数组:”);

int[] nums = new int[num];

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

nums[i] = sc.nextInt();

}

List
res = new ArrayList<>();

if (num % 2 == 0) {

//当n为偶数时,先从后向前输出偶数位置的数字,再从前向后输出奇数位置的数字

for (int i = nums.length - 1; i >= 0; i = i - 2)

res.add(nums[i]);

for (int i = 0; i < nums.length; i = i + 2)

res.add(nums[i]);

} else {

当n 为奇数时,先从后向前输出奇数位置的数字,再从前向后输出偶数位置的数字

for (int i = nums.length - 1; i >= 0; i = i - 2)

res.add(nums[i]);

for (int i = 1; i < nums.length; i = i + 2)

res.add(nums[i]);

}

for (int i = 0; i < res.size() ; i++)

System.out.print(res.get(i) + " ");

}

}

150.如果一个01串任意两个相邻位置的字符都是不一样的,为交错01串。例如:
“0101010”。有一个01串s,找出一个最长的连续交错01串。求子串的长度。

import java.util.Scanner;

public class text {

public static void main(String[] args) {

Scanner
sc = new Scanner(System.in);

System.out.println(“请输入一个字符串:”);

String
s = sc.nextLine();

char[] chars = s.toCharArray();

int res = 1;

int temp = 1;

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

if (chars[i] != chars[i + 1]) {

temp++;

res = Math.max(res, temp);

}
else

temp = 1;

}

System.out.print(res);

}

}

151.例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564.

import java.util.Scanner;

public class text {

public static void main(String[] args) {

Scanner
sc = new Scanner(System.in);

System.out.println(“输入一个数:”);

long n = sc.nextLong();

long cp = n;

long count = 1;// 记录位数

while (cp >= 10) {

count++;

cp /= 10;

}

long result = 0;

for (long i = count; i >= 1; i–) {

long divisor = 0;

for (long j = i; j >= 1; j–) {

divisor = divisor * 10 + 1;

}

long quotient = n / divisor;

if (quotient >= 10) {

System.out.println(-1);

return;

}

result = result * 10 + quotient;

n -= (quotient * divisor);

}

System.out.println(“结果是:” + result);

}

}

  1. 圆圈中最后剩下的数,要求移除后继续从移除后一位数开始执行。

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class text {

public static void main(String [] args) {

Scanner
sc=new Scanner(System.in);

System.out.println(“输入总人数:”);

int m=sc.nextInt();

System.out.println(“移除数:”);

int n=sc.nextInt();

int re=Solution(n,m);

System.out.println(re);

}

public static int Solution(int n, int m) {

if(n <= 0 || m <= 0)

return -1;

List list = new ArrayList<>();

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

list.add(i);

int index = 0;

while(list.size()>1){

index = (index+m-1) % list.size();

list.remove(index);

}

return list.get(0);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值