隔行变色
题目
Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。
小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,....
现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。
请你直接提交这个整数,千万不要填写任何多余的内容。
问题分析
将2作为一个循环体
第n个 如果%2=1就是n/2+1个 %2=0就是n/2个
计算n=21和n=50的情况,相减得到答案
代码实现
package 省赛一轮;
public class 第6届题目1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。
// 小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,....
// 现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。
//
// 请你直接提交这个整数,千万不要填写任何多余的内容
int color1 = 21;
int color2 = 50;
int sum1 = f(color1);
int sum2 = f(color2);
System.out.println(sum2-sum1);
}
private static int f(int n) {
// TODO Auto-generated method stub
if (n%2==0||n%2==1) {
int n1=n/2;
return n1 ;
}else {
int n1 = (n/2)+1;
return n1 ;
}
}
}
输出 15
立方尾不变
题目
有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,....
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容。
问题分析
就是检测n和 n的立方的结尾的 n.length() 位是否相同
计算n的立方
裁剪字符才能
比对、相同计数
--------
int max=21474 83647
1000的立方就是十位数了
所以我们循环到10000
int范围不够需要long类型
代码实现
package 省赛一轮;
public class 第6届题目2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count = 0;
for (long i = 0; i <= 10000; i++) {
String x = i + "";
long n = i*i*i;
String sum = n + "";
String y = sum.substring(sum.length() - x.length());
if (y.equals(x)) {
count++;
}
}
System.out.println(count);
}
}
输出
计入0 是37
不计入0 是36
3、无穷分数
题目
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
请填写该浮点数,不能填写任何多余的内容。
问题分析
无穷...
循环,不是很好实现,,循环体构造有点麻烦
递归方法比较适合,本质也是循环
输出五位的话,只计算到有刘娥五年小数
//x= n / (n + (n+1/......))
//确定一个合理范围,就算结果再变化的范围
//这样就是有限循环了
//只测试10的整倍,最小10再向下结果会改变
//分数也就是除法 , 分子/分母=分数
代码实现
package 省赛一轮;
public class 第6届题目3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//x= n / (n + (n+1/......))
//确定一个合理范围,就算结果再变化的范围
//这样就是有限循环了
//只测试10的整倍,最小10再向下结果会改变
//分数也就是除法 , 分子/分母=分数
double temp = 10.0;//最大除数
double result = 0.0;
for(int i = 10;i >= 1;i--) {
result = i - 1 + temp;
temp = (i - 1) / result;//不断除以上一次记过,也就是下面的分母
}
System.out.printf("%.5f",result);
}
}
输出结果
0.58198