#include <bits/stdc++.h>   using namespace std;   vector<int> t[100000];   int n;   int h[100000];   int arr[100000];   double fac[100001];   bool cmp(int a, int b) { return h[a] < h[b]; }   void dfs(int cur, int he, int par = -1) {     h[cur] = he;     for (int i = 0; i < t[cur].size(); i++) {       if (t[cur][i] == par) continue;       dfs(t[cur][i], he + 1, cur);     }   }   int main() {     cin >> n;     for (int i = 0; i < n - 1; i++) {       int a, b;       cin >> a >> b;       t[a - 1].push_back(b - 1);       t[b - 1].push_back(a - 1);     }     dfs(0, 1);     for (int i = 0; i < n; i++) arr[i] = i;     sort(arr, arr + n, cmp);     double ans = 1;     fac[0] = 1;     fac[1] = 1;     for (int i = 2; i <= n; i++) fac[i] = 1.0 / i;     for (int i = 1; i < n; i++) {       ans = (ans + 1) * fac[h[i]] + ans * (1 - fac[h[i]]);     }     printf( %.9lf n , ans);     return 0;   }   