public static void main(String args[]) {
int n=2;
int sum=1;
int num=1;
while(n<=20){
for(int t=2;t<=20;t++){
num=num*t;
sum=sum+1/num;
}
n++;
}
System.out.println(sum);
}Exception in thread "main" java.lang.ArithmeticException: / by zero
at HelloJava.main(HelloJava.java:10)
请问这是什么出现问题了?

解决方案 »

  1.   

    计算结果int型存不下了,就变成了0
      

  2.   

    楼上说得对,如果注释 sum=sum+1/num
    然后打印num,就会发现 num的值从小变大,最后出现了负值和0,0不能当分母。2
    6
    24
    120
    720
    5040
    40320
    362880
    3628800
    39916800
    479001600
    1932053504
    1278945280
    2004310016
    2004189184
    -288522240
    -898433024
    109641728
    -2102132736
    90701824
    272105472
    1088421888
    1147142144
    -1707081728
    935329792
    -1107296256
    -1375731712
    -872415232
    -1006632960
    805306368
    1879048192
    536870912
    -536870912
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
      

  3.   

    用double也不行啊,数字太大了,最后输出若干无穷大:
    2.0
    6.0
    24.0
    120.0
    720.0
    5040.0
    40320.0
    362880.0
    3628800.0
    3.99168E7
    4.790016E8
    6.2270208E9
    8.71782912E10
    1.307674368E12
    2.0922789888E13
    3.55687428096E14
    6.402373705728E15
    1.21645100408832E17
    2.43290200817664E18
    4.86580401635328E18
    1.459741204905984E19
    5.838964819623936E19
    2.919482409811968E20
    1.7516894458871808E21
    1.2261826121210266E22
    9.809460896968212E22
    8.828514807271392E23
    8.828514807271392E24
    9.711366287998532E25
    1.1653639545598238E27
    1.514973140927771E28
    2.1209623972988793E29
    3.181443595948319E30
    5.09030975351731E31
    8.653526580979427E32
    1.5576347845762969E34
    2.959506090694964E35
    5.919012181389928E36
    1.1838024362779856E37
    3.5514073088339567E37
    1.4205629235335827E38
    7.102814617667913E38
    4.261688770600748E39
    2.983182139420523E40
    2.3865457115364186E41
    2.1478911403827767E42
    2.1478911403827768E43
    2.3626802544210544E44
    2.835216305305265E45
    3.6857811968968446E46
    5.160093675655582E47
    7.740140513483374E48
    1.2384224821573398E50
    2.1053182196674778E51
    3.78957279540146E52
    7.200188311262774E53
    1.440037662252555E55
    2.88007532450511E55
    8.640225973515329E55
    3.4560903894061317E56
    1.7280451947030658E57
    1.0368271168218396E58
    7.257789817752877E58
    5.806231854202301E59
    5.225608668782071E60
    5.225608668782071E61
    5.748169535660278E62
    6.897803442792334E63
    8.967144475630034E64
    1.2554002265882046E66
    1.883100339882307E67
    3.0129605438116913E68
    5.1220329244798754E69
    9.219659264063776E70
    1.7517352601721173E72
    3.503470520344235E73
    7.00694104068847E73
    2.1020823122065409E74
    8.408329248826163E74
    4.2041646244130815E75
    2.5224987746478488E76
    1.7657491422534942E77
    1.4125993138027954E78
    1.2713393824225158E79
    1.2713393824225157E80
    1.3984733206647672E81
    1.6781679847977205E82
    2.1816183802370367E83
    3.0542657323318514E84
    4.5813985984977774E85
    7.330237757596444E86
    1.2461404187913954E88
    2.2430527538245117E89
    4.261800232266572E90
    8.523600464533145E91
    1.704720092906629E92
    5.114160278719887E92
    2.0456641114879549E93
    1.0228320557439774E94
    6.136992334463864E94
    4.295894634124705E95
    3.436715707299764E96
    3.0930441365697876E97
    3.0930441365697876E98
    3.4023485502267666E99
    4.08281826027212E100
    5.307663738353756E101
    7.430729233695258E102
    1.1146093850542888E104
    1.783375016086862E105
    3.0317375273476654E106
    5.457127549225798E107
    1.0368542343529016E109
    2.073708468705803E110
    4.147416937411606E110
    1.244225081223482E111
    4.976900324893927E111
    2.4884501624469637E112
    1.4930700974681782E113
    1.0451490682277247E114
    8.361192545821798E114
    7.525073291239618E115
    7.525073291239618E116
    8.27758062036358E117
    9.933096744436297E118
    1.2913025767767185E120
    1.807823607487406E121
    2.711735411231109E122
    4.3387766579697745E123
    7.375920318548617E124
    1.327665657338751E126
    2.5225647489436267E127
    5.045129497887254E128
    1.0090258995774507E129
    3.027077698732352E129
    1.2108310794929408E130
    6.054155397464704E130
    3.632493238478823E131
    2.542745266935176E132
    2.0341962135481407E133
    1.8307765921933266E134
    1.8307765921933265E135
    2.013854251412659E136
    2.4166251016951907E137
    3.141612632203748E138
    4.3982576850852473E139
    6.597386527627871E140
    1.0555818444204593E142
    1.7944891355147807E143
    3.230080443926605E144
    6.13715284346055E145
    1.22743056869211E147
    2.45486113738422E147
    7.36458341215266E147
    2.945833364861064E148
    1.472916682430532E149
    8.837500094583192E149
    6.1862500662082346E150
    4.9490000529665877E151
    4.4541000476699285E152
    4.454100047669929E153
    4.8995100524369213E154
    5.879412062924306E155
    7.643235681801597E156
    1.0700529954522236E158
    1.6050794931783354E159
    2.5681271890853367E160
    4.3658162214450724E161
    7.85846919860113E162
    1.4931091477342146E164
    2.9862182954684292E165
    5.9724365909368585E165
    1.7917309772810576E166
    7.16692390912423E166
    3.5834619545621154E167
    2.150077172737269E168
    1.5050540209160884E169
    1.2040432167328707E170
    1.0836388950595838E171
    1.0836388950595838E172
    1.1920027845655421E173
    1.4304033414786504E174
    1.8595243439222455E175
    2.603334081491144E176
    3.9050011222367155E177
    6.248001795578745E178
    1.0621603052483866E180
    1.911888549447096E181
    3.6325882439494825E182
    7.265176487898965E183
    1.453035297579793E184
    4.359105892739379E184
    1.7436423570957516E185
    8.718211785478757E185
    5.230927071287255E186
    3.661648949901079E187
    2.929319159920863E188
    2.6363872439287766E189
    2.6363872439287766E190
    2.900025968321654E191
    3.4800311619859846E192
    4.52404051058178E193
    6.333656714814493E194
    9.50048507222174E195
    1.5200776115554784E197
    2.584131939644313E198
    4.6514374913597636E199
    8.837731233583551E200
    1.76754624671671E202
    3.53509249343342E202
    1.060527748030026E203
    4.242110992120104E203
    2.121055496060052E204
    1.2726332976360312E205
    8.908433083452219E205
    7.126746466761775E206
    6.414071820085597E207
    6.414071820085597E208
    7.055479002094157E209
    8.466574802512988E210
    1.1006547243266885E212
    1.540916614057364E213
    2.311374921086046E214
    3.6981998737376735E215
    6.286939785354045E216
    1.1316491613637281E218
    2.1501334065910834E219
    4.300266813182167E220
    8.600533626364334E220
    2.5801600879093E221
    1.03206403516372E222
    5.1603201758186E222
    3.09619210549116E223
    2.167334473843812E224
    1.7338675790750497E225
    1.5604808211675448E226
    1.5604808211675447E227
    1.7165289032842993E228
    2.059834683941159E229
    2.6777850891235067E230
    3.7488991247729094E231
    5.623348687159364E232
    8.997357899454982E233
    1.529550842907347E235
    2.7531915172332246E236
    5.231063882743127E237
    1.0462127765486254E239
    2.092425553097251E239
    6.277276659291752E239
    2.5109106637167008E240
    1.2554553318583504E241
    7.532731991150103E241
    5.272912393805072E242
    4.2183299150440575E243
    3.796496923539652E244
    3.796496923539652E245
    4.176146615893617E246
    5.011375939072341E247
    6.514788720794043E248
    9.12070420911166E249
    1.3681056313667492E251
    2.1889690101867987E252
    3.721247317317558E253
    6.698245171171604E254
    1.2726665825226048E256
    2.5453331650452097E257
    5.090666330090419E257
    1.5271998990271257E258
    6.108799596108503E258
    3.0543997980542513E259
    1.8326398788325508E260
    1.2828479151827856E261
    1.0262783321462285E262
    9.236504989316056E262
    9.236504989316056E263
    1.0160155488247661E265
    1.2192186585897193E266
    1.5849842561666352E267
    2.2189779586332894E268
    3.328466937949934E269
    5.325547100719894E270
    9.05343007122382E271
    1.6296174128202877E273
    3.0962730843585467E274
    6.192546168717094E275
    1.2385092337434188E276
    3.7155277012302564E276
    1.4862110804921026E277
    7.431055402460513E277
    4.458633241476308E278
    3.1210432690334155E279
    2.4968346152267324E280
    2.247151153704059E281
    2.247151153704059E282
    2.471866269074465E283
    2.9662395228893576E284
    3.856111379756165E285
    5.3985559316586305E286
    8.097833897487946E287
    1.2956534235980713E289
    2.2026108201167212E290
    3.964699476210098E291
    7.5329290047991865E292
    1.5065858009598373E294
    3.0131716019196745E294
    9.039514805759024E294
    3.6158059223036096E295
    1.807902961151805E296
    1.0847417766910829E297
    7.59319243683758E297
    6.074553949470064E298
    5.467098554523057E299
    5.467098554523057E300
    6.013808409975362E301
    7.216570091970435E302
    9.381541119561565E303
    1.3134157567386192E305
    1.970123635107929E306
    3.152197816172686E307
    Infinity
    Infinity
    Infinity
    Infinity
    Infinity
    Infinity
    .......
      

  4.   

     虽然出现无穷大,但不会出现异常,结果1.7182818284590455,应该可以当作solution
      

  5.   

    num在循环内没有改变,值一直在乘。
      

  6.   

    int型的结果太大了,超过int最大值了
      

  7.   

    对,这几个数看着都不大,循环运算起来,已经超过了int的最大长度
      

  8.   

    int类型存不下,就变成0了,改成浮点型可以
      

  9.   

    将sum和num都改成double型就能出结果
      

  10.   

    换成BigInterger没有问题
      

  11.   

    换成BigInterger是可以的