QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3543|回复: 7
打印 上一主题 下一主题

为什么我每次用C语言的pow函数算5的100次方,得出的结果都和课本的不一样?

[复制链接]
字体大小: 正常 放大

1

主题

6

听众

41

积分

升级  37.89%

  • TA的每日心情
    郁闷
    2013-10-10 09:59
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    自我介绍
    学习C语言

    群组2013年数学建模国赛备

    跳转到指定楼层
    1#
    发表于 2013-8-12 10:14 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    为什么我每次用C语言的pow函数算5的100次方,得出的结果都和课本的不一样?# i6 g0 ?, H* K/ q8 K' i( ?
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    c语言中int型double型都有固定的大小, int型在vc中占4字节,double占8字节,所以表示的固定大小肯定会有问题。建议用数组移位表示的方法计算这么大的数
    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    回复

    使用道具 举报

    1

    主题

    6

    听众

    187

    积分

  • TA的每日心情
    慵懒
    2014-11-9 09:25
  • 签到天数: 72 天

    [LV.6]常住居民II

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    0

    主题

    7

    听众

    160

    积分

    升级  30%

  • TA的每日心情
    无聊
    2014-11-17 18:43
  • 签到天数: 30 天

    [LV.5]常住居民I

    自我介绍
    12级大学学生
    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    xx372859523 发表于 2013-8-12 14:37 6 X" ?3 H0 ]1 ~
    有源程序吗
    1. #include<stdio.h>
      8 K% m# X1 p\" c9 E
    2. #define max_size 100000
      ( K1 q3 d* W\" R
    3. #define pow_count 1000//次数& y) z& w' V1 G$ I8 c, O$ n
    4. int a[max_size];
      5 Y. M; Q9 R3 U  o6 y
    5. void add_bite(int i)
      * ^, a' q6 k- c
    6. {
      / |9 B: E2 f8 X6 ^6 a4 q5 H- N
    7.     if((a[i]+1)>10)  # z: P0 d3 Z+ T4 ^1 w
    8.     {
      ) {) C9 t& F- D3 v  k% l9 y# V
    9.          a[i]=(a[i]+1)%10;
      9 m\" g2 f\" [\" G1 i5 v$ e( B% T
    10.          add_bite(i+1);
      ( Y! Y- r2 N, M1 l5 m3 J
    11.      }
      7 V; l' g# A* W5 F
    12.     else& r- b4 E( _8 n\" p9 U4 F+ l# r
    13.     {0 t# i8 D6 y! T; P! V/ ^/ f+ v
    14.         a[i]+=1;
      - l+ n& F+ B1 o2 P# p
    15.     }8 B! {$ Q8 V0 }+ p0 [5 n
    16. }$ l! W. L; ?! r. x0 i6 ]( Z
    17. void main()
      % d& n8 o: [/ n
    18. {   
      5 F, `6 e7 Z- |$ D; S6 ^
    19.     int sum,i,j;\" n0 v\" F' I; N# d4 u\" e! J3 i4 m2 e
    20.     a[0]=2;0 ]4 L3 @2 n( o- Z. l( _6 d
    21.     sum = 0;2 Q2 V6 `- w6 |
    22.     for(i=1;i<max_size;i++)\" s2 v1 b9 m$ d* F9 p
    23.     {
      1 W% ^# [; x0 K; n
    24.         a[i] = 0;   
      9 ~. l- K. z( F2 S9 e5 X7 c# W
    25.     }
      ' n; n# f7 w$ N( w
    26.     for(i = 1;i<pow_count;i++)4 V+ [) \! c. |; n0 e* @: H
    27.     {
      4 X& ~% g. }& R! D+ y& Y
    28.         for(j=0;j<max_size;j++)
      : ~0 ^; W+ O# `# s) M0 r
    29.         {2 K0 K/ Y& Q+ `5 |' p) G' T, {
    30.             if(a[j]*5>=10)
      2 m8 r+ A\" Q9 ~
    31.             {
      8 O. i  u' w: l6 e, ?: H
    32.                 a[j] = a[j]*5%10;
      ! c; y$ v1 L) p0 f) Z% v
    33.                 add_bite(i+1);
      ! C$ Q2 f2 E  i: D. p; L3 s2 g- f1 c
    34.             }\" @3 \; j% `& F5 p/ ]: o9 e6 [! y
    35.             else
      & n\" G8 J4 [1 c
    36.             {
      : H7 p0 f/ {0 U% Y- D  }9 Q+ H8 Z
    37.                a[j]= a[j]*5;) V) W5 @2 r3 T\" X4 K7 r
    38.              }& C\" d4 H8 s) _$ j3 `5 w\" e
    39.          }  * E/ C: s  O6 [; s+ {
    40.     }   
      # Q# b  o+ ~6 d7 h\" i3 o$ r
    41.     for(i=max_size;i>0;i--)
      8 M0 w6 m) C8 b$ H. x0 ?- h- E
    42.     {
      0 ^3 Y; Q* R4 @! C
    43.         if(a[i]!=0) break;
      \" g* q0 v9 g6 o' s6 l1 R
    44.     }: W7 Q! [* [* O, {  _
    45.     for(j=i;j>0;j--)
      * G0 O' R. |% n. f% L1 [/ w\" R
    46.     {
      - T: X; F: L' h# w
    47.         sum++;
      3 c$ M2 B5 O% `
    48.         printf("%d",a[j]);7 Q3 d- ~& A3 Q* i/ J8 L! C
    49.      }5 K5 C% a# x8 s- w- I0 p
    50.      printf("\n%d",sum);
      + y( x9 w& O& N& T  W
    51. }
    复制代码
    回复

    使用道具 举报

    1

    主题

    6

    听众

    187

    积分

  • TA的每日心情
    慵懒
    2014-11-9 09:25
  • 签到天数: 72 天

    [LV.6]常住居民II

    自我介绍
    ......

    新人进步奖

    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 long int来定义sum。PS 5的100次方真心太大...

    点评

    wangzheng3056  所以应该用数据移位乘法解决范围问题  详情 回复 发表于 2013-8-15 22:01
    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    xx372859523 发表于 2013-8-15 18:47
    ( K1 ^" z3 z# j' x; k3 QLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    # u. `* U* s6 \' n% g  j0 i2 s; m所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-6-3 11:25 , Processed in 0.470371 second(s), 93 queries .

    回顶部