广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2878 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
pwert011
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 这题我不会请大家教我谢谢拉
设计程式计算下列级数,n由使用者输入
第一题 1/1!+1/3!+1/ ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾 | Posted:2005-12-06 01:38 |
tnof221 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x99
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

第一题
复制程式
import java.io.*;
public class test
{
       public static void main(String args[]) throws IOException
       {
              int i,j,n,b=1;
              double s=0.0;
              String q;
             BufferedReader k;
      
             k=new BufferedReader(new InputStreamReader(System.in));
      
             System.out.print("输入数字: ");
             q=k.readLine();
             n=Integer.parseInt(q);
             
             for(i=1;i<=n;i+=2)
             {
                    if(i%2==0)
                           break;
                    for(j=1;j<=i;j++)
                           b*=j;
                    s+=(1/(float)b);
             }
             System.out.println(s);
       }
}

第二题
不知道这是不是你要的答案
如果n是要自己设定的话,这不是你要的答案
复制程式
public class test
{
       public static void main(String args[])
       {
              int i,j=1,n,b=1;
              double s=0.0;
             
             for(i=2;i<=100;i+=2)
             {
                     s+=((float)j/i);
                     if(i==100)
                            System.out.println("n="+j);
                     j+=i;
             }
             System.out.println("加总为"+s);
       }
}

此文章被评分,最近评分记录
财富:80 (by codeboy) | 理由: 感谢您的范例喔~^^


我贴图所用的网路空间,有时图会不好开,请大家多试几次吧 ^^
献花 x1 回到顶端 [1 楼] From:台湾教育部 | Posted:2005-12-06 09:36 |
rakish
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

1+1/3!+1/5!+1/7! ....

感觉..用C就是不好写..(不是不好写...是答案不好看)宣告int...
1=1
1/3!=0.16=0
1/5!=0.0083=0
1/7!=0.00019=0
.........
一堆长的像零的相加.....实在没什么好算的....
答案:
复制程式
void main(){  printf("≒1");}
看在O(1)的份上应该会有两分...

不过..人都是贪婪的..有两分了就想要五分..
暴力法...小就小把int 改成float照加
1=1
1/3!=0.16
1/5!=0.0083
1/7!=0.00019
发现....误差颇大....
1/3!误差一次,1/5! 误差一次,1/7! 误差一次,....误差n次
一堆误差加起来..应该就会没有误差(是这样吗)...
这样应该有五分...

有了菜就想要吃肉...
那先通分了好..一堆int+-*/应该不会产生误差

以7为例(只考虑分子)

1/1+1/3!+1/5!+1/7!
=7!+7*6*5*4+7*6+1 /7!
有没有感觉....

没有...没有是正常的...再简化一下
=7*6(5*4*3*2*1+5*4+1)+1
=7*6(5*4(3*2+1)+1)+1
感觉就是长的很像...
(a*b*c +1)
         
有没有感觉....有一点点了..
复制程式
int sum_factorial(int n){
    if(n<1){ return 1;}
    else{ return (n*(n-1)*(sum_factorial(n-2)))+1;}
}

void main(){  printf("%2d",sum_factorial(7));}
这样....应该会0分...

那个只是分子....
记得再除 n! <--只有一次误差

此文章被评分,最近评分记录
财富:100 (by codeboy) | 理由: 详细说明...^^ 值得鼓励


人一但长大了
就发现世上的事不像想的那么好
你总是会一天天长大的
会看得越来越清楚
献花 x1 回到顶端 [2 楼] From:台湾 | Posted:2005-12-06 19:14 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.018163 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言