简单数学问题
记录点滴。
1 /* 2 2015.6 HT 3 ACM Work_2 4 5 */ 6 7 //#include <stdio.h> 8 #include<iostream> 9 using namespace std; 10 11 /* 12 Sum Problem 13 1+2+...+N 14 */ 15 //int main() 16 //{ 17 // int n, sum = 0; 18 // while((scanf("%d", &n) && (n>0))) 19 // { 20 // sum = (1 + n) * n / 2; 21 // if (sum > 2147483648) 22 // { 23 // printf("sum too large !"); 24 // break; 25 // } 26 // printf("%d\n\n", sum); 27 // sum = 0; 28 // } 29 // return 0; 30 //} 31 32 33 /* 34 Elevator 35 6 seconds to move the elevator up one floor 36 4 seconds to move down one floor 37 stay for 5 seconds at each stop 38 */ 39 //int main() 40 //{ 41 // int i, n, a[100], sum = 0; 42 // for (i = 1; i < 100; i++) 43 // a[i] = 0; 44 // while((scanf("%d", &n) && n != 0 && n < 100)) 45 // { 46 // a[0] = 0; 47 // for (i = 1; i <= n; i++) 48 // scanf("%d", &a[i]); 49 // for (i = 1; i <= n; i++) 50 // { 51 // if(a[i]>a[i-1]) 52 // sum += (a[i] - a[i-1]) * 6 + 5; 53 // else 54 // sum += (a[i-1] - a[i]) * 4 + 5; 55 // } 56 // printf("%d\n", sum); 57 // sum = 0; 58 // } 59 // return 0; 60 //} 61 62 63 /* 64 Least Common Multiple 最小公倍数 65 */ 66 //int main() 67 //{//LCM 68 // int i, n, num, count = 1; 69 // int ch, p1, r, q1, p, q; 70 // scanf("%d", &n); 71 // while (n--) 72 // { 73 // i = q = p = r = 0; 74 // count = 1; 75 // scanf("%d", &num); 76 // while (num--) 77 // { 78 // scanf("%d", &ch); 79 // if (count++ == 1) 80 // { 81 // p = p1 = ch; 82 // continue; 83 // } 84 // else 85 // q = q1 = ch; 86 // // need p > q 87 // if (q > p) 88 // { 89 // r = q; 90 // q = p; 91 // p = r; 92 // } 93 // while (p%q != 0) 94 // { 95 // r = q; 96 // q = p%q; 97 // p = r; 98 // 99 // } 100 // p = p1 = p1 / q*q1; 101 // } 102 // printf("%d\n", p); 103 // } 104 // return 0; 105 //} 106 107 108 /* 109 Number Sequence 110 f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7 111 */ 112 //int main() 113 //{ 114 // // 结果最多只有7 * 7 = 49种可能 115 // int a, b, n, t1, t2, t3; 116 // while (1) 117 // { 118 // cin >> a >> b >> n; 119 // if (!(a || b || n)) break; 120 // n %= 49; 121 // t1 = t2 = t3 = 1; 122 // for (int i = 3; i <= n; ++i) 123 // { 124 // t3 = (a*t2 + b*t1) % 7; 125 // t1 = t2; 126 // t2 = t3; 127 // } 128 // cout << t3 << endl; 129 // } 130 // return 0; 131 //} 132 133 134 /* 135 Fibonacci Again 136 F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) 137 "yes" if 3 divide evenly into F(n) 138 "no" if not 139 */ 140 //int main() 141 //{ 142 // int n, i; 143 // __int64 ans, a, b; 144 // while (cin >> n) 145 // { 146 // a = 7; 147 // b = 11; 148 // if (n == 1 || n == 0) 149 // cout << "no\n"; 150 // else 151 // { 152 // ans = 0; 153 // for (i = 2; i <= n; i++) 154 // { 155 // ans = (a + b) % 3; 156 // a = b; 157 // b = ans; 158 // } 159 // if (!ans) 160 // cout << "yes\n"; 161 // else 162 // cout << "no\n"; 163 // } 164 // } 165 // return 0; 166 //} 167 168 169 /* 170 吃糖果 171 不喜欢将一样的糖果放在一起吃 172 是否存在一种吃糖果的顺序使得他能把所有糖果都吃完 173 2 174 3 175 4 1 1 176 5 177 5 4 3 2 1 178 179 No 180 Yes 181 */ 182 //int main() 183 //{ 184 // // 某种糖果的最大数量max, 剩余的糖果总数要比max-1多或等于 185 // int sum, max; 186 // int i, T, n, m; 187 // 188 // scanf("%d", &T); 189 // while (T--) 190 // { 191 // scanf("%d", &n); 192 // sum = 0; 193 // max = -1; 194 // for (i = 0; i<n; i++) 195 // { 196 // scanf("%d", &m); 197 // sum += m; 198 // if (max<m) 199 // max = m; 200 // } 201 // if (sum - max + 1 >= max) 202 // printf("Yes\n"); 203 // else 204 // printf("No\n"); 205 // } 206 // return 0; 207 //} 208 209 210 /* 211 人见人爱A^B 212 求A^B的最后三位数表示的整数 213 */ 214 //int power(int a, int n) 215 //{ 216 // // 快速幂非递归实现 217 // int ans = 1; 218 // while (n) 219 // { 220 // if (n & 1) 221 // ans *= a; 222 // a *= a; 223 // n = n >> 1; 224 // } 225 // return ans; 226 //} 227 //int main() 228 //{ 229 // // 较大数会溢出 230 // int a, b; 231 // while (scanf("%d%d", &a, &b) != EOF && a && b) 232 // { 233 // printf("%d\n", power(a, b) % 1000); 234 // } 235 // return 0; 236 //} 237 238 239 /* 240 Rightmost Digit 241 output the most right digit of N^N 242 3 * 3 * 3 = 27, so the rightmost digit is 7 243 */ 244 //int power(int a, int n) 245 //{ 246 // // 快速幂非递归实现 247 // int ans = 1; 248 // while (n) 249 // { 250 // if (n & 1) 251 // ans *= a; 252 // a *= a; 253 // n = n >> 1; 254 // } 255 // return ans; 256 //} 257 //int main() 258 //{ 259 // int a, n; 260 // scanf("%d", &n); 261 // while (n--) 262 // { 263 // scanf("%d", &a); 264 // printf("%d\n", power(a, a) % 10); 265 // } 266 // return 0; 267 //} 268 269 270 /* 271 最小公倍数 272 */ 273 //int gcd(int a, int b) 274 //{ 275 // //求最大公约数函数 276 // int r; 277 // while (b) 278 // { 279 // r = a%b; 280 // a = b; 281 // b = r; 282 // } 283 // return a; 284 //} 285 //int main() 286 //{ 287 // int a, b, g; 288 // while (scanf("%d%d", &a, &b) != EOF) 289 // { 290 // if (a > b) 291 // g = gcd(a, b); 292 // else 293 // g = gcd(b, a); 294 // g = (a*b) / g; 295 // printf("%d\n", g); 296 // } 297 // return 0; 298 //} 299 300 301 /* 302 求数列的和 303 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和 304 */ 305 //int main() 306 //{ 307 // int n, m, i; 308 // double sum, a; 309 // while (scanf("%d%d", &n, &m) != EOF) 310 // { 311 // sum = 0; 312 // a = (double)n; 313 // for (i = 0; i<m; i++) 314 // { 315 // sum += a; 316 // a = sqrt(a); 317 // } 318 // printf("%.2lf\n", sum); 319 // } 320 // return 0; 321 //} 322 323 324 /* 325 多项式求和 326 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 327 */ 328 int main() 329 { 330 int n, m, i; 331 double a[1000], j; 332 a[1] = 1; 333 for (i = 2; i<1000; i++) 334 { 335 j = 1.0 / i; 336 if (i % 2 == 0) 337 a[i] = a[i - 1] - j; 338 else 339 a[i] = a[i - 1] + j; 340 } 341 scanf("%d", &n); 342 while (n--) 343 { 344 scanf("%d", &m); 345 printf("%.2f\n", a[m]); 346 } 347 return 0; 348 }