【年号字串】
[题目]
【问题描述】
小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对 应 28,AZ 对应 52,LQ 对应 329。
请问 2019 对应的字符串是什么?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个大写英文字符串,在提交答案时只填写这个字符串,注意全部大写,填写多余的内容将无法得分。
答案:BYQ
import java.util.Scanner;
public class demo08 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int y=sc.nextInt();
int n;
while(y>0)
{
n=y%26;
y/=26;
System.out.println(n);
}
}
}
[输出的是倒着的]
【门牌制作】
[题目] 小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上, 例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
[结果]:624
public class demo {
public static int f(int n)
{ int s=0;
int t;
while(n>0)
{
t=n%10;
n/=10;
if(t==2)
s ++;
} return s;
}
public static void main(String[] args) {
int a=0;
for(int i=0;i<=2020;i++)
{
a+=f(i);
}
System.out.println(a);
}
}
【既约分数】
[题目]
如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。例如,3/4,5/2,1/8,7/1都是既约分数。请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020)。
[思路]
辗转相除法,求最小公倍数(或最大公约数)
两个数a,b,用较大的数除较小的数,得到一个余数和一个商,(如果仍不能整除)将原来小的那个数作为分子,余数作为分母..重复重复,直到能整除;能整除的话,最后的除数就是那个最大公约数了。
[答案] 2481215
public class demo10 {
public static int gcd(int a,int b)
{
int n=Math.max(a,b);
int m=Math.min(a,b);
int t=n%m;
while(t!=0)
{
n=Math.max(m,t);
m=Math.min(m,t);
t=n%m;
} return m;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j;
int s=0;
for(i=1;i<=2020;i++)
{
for(j=1;j<=2020;j++)
{
if(gcd(i,j)==1)
s++;
}
} System.out.println(s);
}
}