蓝桥杯 2015 javaC组真题(上)
程序员文章站
2022-04-21 23:27:00
...
隔行变色
Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。
小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,…
现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。
public class Main1 {
public static void main(String[] args) {
int sum=0;
for(int i=21;i<=50;i++) {
if(i%2==1)
sum++;
}
System.out.println(sum);
}
}
本题答案 15
立方尾不变
有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,…
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
public class Main2 {
public static void main(String[] args) {
int count=0;
for(long i=1;i<=10000;i++)
{
if(f(i))
count++;
}
System.out.println(count);
}
static boolean f(long i) {
long x=i*i*i;
String s1="";
s1=s1+x;
String s2="";
s2=s2+i;
// int s3=Integer.valueOf(s1.substring(s1.length()-s2.length(), s1.length()));
// System.out.println(s1+" "+s2+" "+s3);
// if(i==s3)
// return true;
// else
// return false;
String s3=s1.substring(s1.length()-s2.length(),s1.length());
if(s2.equals(s3)) {
System.out.println(s1+" "+s2+" "+s3);
return true;
}
else
return false;
}
}
无穷分数
无穷的分数,有时会趋向于固定的数字。
请计算【图1.jpg】所示的无穷分数,要求四舍五入,精确到小数点后5位,小数位不足的补0。
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double n=sc.nextDouble();//输入分子
double sum=n+2;//分母等于分子+2
for(double i=n;i>=1;i--)
sum=i+(i+1)/sum;//后面跟着原来的规律i/i+1
System.out.println(String.format("%.5f", 1/sum));
}
}
循环节长度
两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。
比如,11/13=6=>0.846153846153… 其循环节为[846153] 共有6位。
下面的方法,可以求出循环节的长度。
import java.util.Vector;
public class Main4 {
public static void main(String[] args) {
System.out.println(f(11,13));
System.out.println(f(1, 8));
System.out.println(f(8, 3));
System.out.println(f(39, 190));
}
public static int f(int n,int m) {
n=n%m;
Vector<Integer> v=new Vector<Integer>();
for(;;) {
v.add(n);
n*=10;
n=n%m;
if(n==0)
return 0;
if(v.indexOf(n)>0)
return v.size()-v.indexOf(n);
}
}
}
格子中输出
stringInGrid方法会在一个指定大小的格子中打印指定的字符串。
要求字符串在水平、垂直两个方向上都居中。
如果字符串太长,就截断。
如果不能恰好居中,可以稍稍偏左或者偏上一点。
package jc;
public class Main5 {
public static void main(String[] args) {
}
public static void stringInGrid(int width, int height, String s)
{
if(s.length()>width-2) s = s.substring(0,width-2);
System.out.print("+");
for(int i=0;i<width-2;i++) System.out.print("-");
System.out.println("+");
for(int k=1; k<(height-1)/2;k++){
System.out.print("|");
for(int i=0;i<width-2;i++) System.out.print(" ");
System.out.println("|");
}
System.out.print("|");
String ff =(width-strlen(s)-2)/2,"",buf,(width-strlen(s)-2)/2,""); //填空
System.out.print(String.format(ff,"",s,""));
System.out.println("|");
for(int k=(height-1)/2+1; k<height-1; k++){
System.out.print("|");
for(int i=0;i<width-2;i++) System.out.print(" ");
System.out.println("|");
}
System.out.print("+");
for(int i=0;i<width-2;i++) System.out.print("-");
System.out.println("+");
}
}
上一篇: 仿微信项目实战(一)
下一篇: 网络上经典暴笑语录