码迷,mamicode.com
首页 > 其他好文 > 详细

【轻院热身赛】级数求和、进制转换

时间:2015-04-28 13:40:04      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

【级数求和】

Problem A: 级数求和

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 409  Solved: 240

SubmitStatusWeb Board

Description

已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。

Input

键盘输入 k

Output

屏幕输出 n

Sample Input

1

Sample Output

2
【思路】
  直接模拟
 
 1 #include <iostream>  
 2 using namespace std;  
 3 int main()  
 4 {      
 5       int m; 
 6       cin >> m;      
 7       while(m--){
 8           int k, n = 1;  
 9         double sum = 0;  
10           cin >> k; 
11           while(1)  {  
12             sum += double(1/double(n));  
13                if(sum > k) break;  
14             n++;  
15            }  
16             cout << n << endl;  
17       }    
18     return 0;  
19 } 

【进制转换】

Problem B: 进制转换

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 321  Solved: 78

SubmitStatusWeb Board

Description

将一个二进制数转换为十进制数输出。

Input

首先输入一个整数n,表示测试实例的个数。接下来是n行,每行一个01串(长度不超过60),表示一个二进制数。

Output

输出n行。对应每一行输入,输出其对应的十进制数整数。

Sample Input

2
1101
1100111

Sample Output

13
103
【思路】
  注意定义 long long 类型,赋值输出为 %lld,最大可读入18位整数,需用Dev,Dev下载地址
  若在VC 6.0中,则用__int64,赋值输出为%I64d。
 
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cmath>
 4 using namespace std;
 5 int main(){
 6     int n;
 7     cin >> n;
 8     while(n--){
 9         long long sum = 0,ac = 0;
10         int i,j;
11         char a[102];
12         cin >> a;
13         int temp = strlen(a);
14         for(i = 0,j = temp - 1;i < temp;i++,j--){
15             ac = pow(2,i);
16             if(a[j] == 1){
17                 sum += ac;
18             }            
19         }
20         cout << sum << endl;
21     }
22     return 0;
23 } 

 

【轻院热身赛】级数求和、进制转换

标签:

原文地址:http://www.cnblogs.com/zhengbin/p/4462613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!