题型
10 题
- 填空题
- 代码题
前三道: 循环
- for 循环 题目中找得到循环次数
- while循环 知道循环条件找不到循环次数
同时涉及,集合,字符串等知识点的运用
- 考察字符串常用函数
字符串转字符数组,判断结尾 - 集合考察特性
list:有序可重复
set:无序不可重复
map:key-value键值对
循环
得到循环次数----for
19 java c 1
import java.util.*;
public class Main {
public static void main(String[] args) {
int cnt=0;
for(int i=1;i<=2019;i++)
{
//将数字转化为字符串
String s=i+"";
//将字符串转化为字符数组 toCharArray()
char[] cs=s.toCharArray();
for(int k=0;k<cs.length;k++)
{
if(cs[k] == '0' || cs[k]=='1' || cs[k] =='2' ||cs[k]=='9')
{
cnt+=i;
break;
}
}
}
System.out.print(cnt);
}
}
15 Java c 2
// 注意这里选用long类型
public class Main {
/**
* 一些数字立方的末尾刚好是该数字本身
* 10^4以内的数字中,这样的数有多少个
* @param args
*/
public static void main(String[] args) {
int cnt=0;
String a="";
String b="";
for(long i=1;i<=10000;i++)
{
//将数字转化为字符串
a=i+"";
b=i*i*i+"";
//判断b字符串是否以a结尾
if(b.endsWith(a))
{
cnt++;
}
}
System.out.println(cnt);
}
}
得到循环条件----while
19 java c 2
public class Main {
/**
* 一块矩形材料,每次从中间切最大的矩形,然后继续,求2019*324材料可以
* 切出来多少个
* @param args
*/
public static void main(String[] args) {
int a = 2019;
int b = 324;
int cnt=0;
while(a != b)
{
if(a>b)
{
a-=b;
cnt++;
}else if(b>a)
{
b-=a;
cnt++;
}
}
cnt++;
System.out.print(cnt);
}
}
18 Java C 1
public class Main {
/**
* 第一天一元,之后每一天比前一天多两元,请计算第几天sum=108
* @param args
*/
public static void main(String[] args) {
int day = 1;
int a=1;
int sum=1;
while(sum<108)
{
a+=2;
sum+=a;
day++;
}
System.out.print(day);
}
}
18 java C 2
注意: d要大于0
public class Main {
/**
*
* @param args
*/
public static void main(String[] args) {
int n=5;
while(true)
{
if(n%5==1)
{
int a=(n-1)/5*4;
if(a%5==2)
{
int b=(a-2)/5*4;
if(b%5==3)
{
int c=(b-3)/5*4;
if(c%5==4)
{
int d=(c-4)/5*4;
if( d%5 == 0 && d>0)
{
break ;
}
}
}
}
}
n++;
}
System.out.print(n);
}
}
集合和字符串循环 ---- set
list 有序
set 唯一
19 Java C 3
public class Main {
/**
* 字符串0100110001010001有多少个非空字串
* substring(i,j)截取字符串
* @param args
*/
public