1087 有多少不同的值
当自然数 n 依次取 1、2、3、……、N 时,算式 ?n/2?+?n/3?+?n/5? 有多少个不同的值?(注:?x? 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分。)
输入格式:
输入给出一个正整数 N(2≤N≤10^?4)。
输出格式:
在一行中输出题面中算式取到的不同值的个数。
输入样例:
2017
输出样例:
1480
分析:
根据公式的特性,这个值肯定是一个在逐渐增长的值,所以相同的值肯定是连续的,所以只要保证当前计算的结果个上一个结果比较是否相等,如果不等则计数器加一。
代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader br=new BufferedReader(new InputStreamReader(System.in));int n=Integer.parseInt(br.readLine());int b=0,num=1;for (int i = 1; i <= n; i++) {int a=i/2+i/3+i/5;if(i==1) {b=a; }if(b!=a) {num++;}b=a;}System.out.println(num);}
}