解题思路: 注意事项: 参考代码:import java.util.*; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String args[]){ Scanner scan=new Scanner(System.in); int n=scan.nextInt(); long num[][]=new long[n+1][10]; long[] std=new long[10]; long count=0; for(int i=1;i<=n;i++){ int top=0; long h=scan.nextLong(); std[top]=h; while(h>1){ top++; h=sqrt(h/2+1); std[top]=h; } for(int j=0,k=top-1;k>=0;k--,j++){ num[i][j]=std[k]; } count+=top; } for(int i=0;i<10;i++){ for(int j=2;j<=n;j++){ if(num[j][i]>0&&num[j][i]==num[j-1][i])count--; } } System.out.println(count); } public static long sqrt(long h){ long x=0; long start=1l,end=(long)1e9,mid=0; while(start<=end){ mid=(start+end)/2; if(mid*mid<=h){ x=mid; start=mid+1; } else end=mid-1; } return x; } }
0.0分
0 人评分
回文串 (C语言代码)浏览:3097 |
Pascal三角 (C语言代码)格式错误浏览:551 |
【金明的预算方案】 (C++代码)浏览:873 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:852 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:608 |
C二级辅导-等差数列 (C语言代码)浏览:831 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:549 |
Manchester- A+B for Input-Output Practice (II)浏览:1365 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:670 |
最小公倍数 (C语言代码)浏览:1730 |