Problem C: 很简单的一道题
来源:互联网 发布:less than知乎 编辑:程序博客网 时间:2024/05/16 00:40
Problem C: 很简单的一道题
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 88 Solved:18
[Submit][Status][Web Board]
Description
有一个简单的函数数学公式,如下
Input
重复输入多组数据
输入n(1<=n<=10),输入-1程序终止。
Output
输出f(n)的结果(保留30位小数)
Sample Input
1
3
6
10
-1
Sample Output
1.000000000000000000000000000000
0.166666666666666666666666666666
0.047619047619047619047619047619
0.018181818181818181818181818181
解题思路:
需要用到循环输出小数点后30位的数据。
代码:
#include <iostream>#include <cmath> using namespace std; int fun(int n){ if (1 == n) return 1; else return n+fun(n-1);} int funt(int n){ if (1 == n || 0 == n) return 1; else return n * funt(n-1);} void div(int a, int b,int arr[],int len){ int result = fabs(a/b);//商的整数部分 int remainder = fabs(a%b);//余数 int i; for(i=0; i<len;i++) { a = remainder * 10;//用余数*10作为新的被除数去运算 arr[i] = fabs(a/b); remainder = fabs(a%b);//得到新的余数 }// if(a*b<0) // {// cout<<"-";//看商是否为负值 // } cout<<result<<".";//输出整数部分和小数点 for(i=0; i<len; i++)//输出小数部分 { cout<<arr[i]; } cout << endl;} int main(){ int n; int array[30] = {0}; while (cin >> n) { int sum = 0; if (n == -1) { break; } if ((n >= 1) && (n <= 10) && (0 == n % 2)) { sum = fun(n); } else { sum = funt(n); } div(1, sum, array, 30); } return 0;}
- Problem C: 很简单的一道题
- 一道简单的C语言题
- 一道简单的C语言题
- 一道简单的C#选择题
- 一道简单的题
- sony招聘中的一道简单的C程序填空题
- sony招聘中的一道简单的C程序填空题
- 一道简单的C#测试题 C#Except
- 一道“简单”的笔试题 (c /c++ ,汇编)
- 简单理解一道关于#ifndef 和extern "C"的题
- 一道C的题
- 很简单的一道题(CE)
- 2457: 很简单的一道题
- YTU 2457: 很简单的一道题
- 一道简单的C程序--考考你
- 一道简单的C语言嵌套
- 一道简单C语言题目的优化
- 一道很简单的题目
- CV人物志
- 编程高手无捷径
- C语言程序设计 全书课后习题答案!!
- Java中String与StringBuffer的区别
- 评:Linux多线程服务端编程
- Problem C: 很简单的一道题
- P2P小贷网站业务数据流程分享
- Eclipse+PyDev 安装和配置
- 破解android的root权限的本质是:在系统中加入一个任何用户都可能用于登陆的su命令。或者说替换掉系统中的su程序,因为系统中的默认su程序需要验证实际用户权限,只有root和 shell用户才
- Java 异常总结
- Android入门之Activity
- 利用putty通过win7访问ubuntu
- Problem E: 爱你多少年呢
- 堆和栈的区别