9.20顺丰科技笔试最后两个编程题
1.公式推导出B(i)=A(i)+A(i+1),代码就不写了
2.判断不大于n的幸运数(定义由4和7组成的数位幸运数)
思路:判断每一位是不是7或者4,如果到最后一位还是7或者4,就是幸运数,中间但凡有一位不是7或者4,这个数就不是幸运数
import java.util.Scanner;
public class Main {
public static int[] num=new int[65536];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
String str = String.valueOf(i);
char[] ch = str.toCharArray();
int j=ch.length-1;
if(j>=0) {
while (j>=0&&(ch[j] == '4' || ch[j] == '7')) {
j--;
}
if (j == -1) {
sum++;
}
}
}
System.out.println(sum);
}
}
}