国产日韩欧美久久久精品图片|国产综合有码无码中文字幕|国产一区二区综合视频|国产亚洲精品电影网站在线观看|国产精品一区在线

機(jī)械社區(qū)

 找回密碼
 注冊(cè)會(huì)員

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2937|回復(fù): 1
打印 上一主題 下一主題

C語(yǔ)言算法16-26

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2017-10-6 15:41:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
【程序16
0 y) R2 z0 [& |& M題目:輸入兩個(gè)正整數(shù)mn,求其最大公約數(shù)和最小公倍數(shù)。
7 {( X( X: |% ?% _, F, W8 x3 z% ^7 v- Q# h
! D. I7 p7 _9 q' {

$ R0 o+ M/ v2 s, v6 Y作者: zhlei81 2005-1-22 11:30 回復(fù)此發(fā)言 4 O) F. \" c* r/ H. O! U

# C% d! k# T% f-------------------------------------------------------------------------------- 3 j/ |- f; t+ e9 h# _  h
: P4 q+ P# _8 M& K- G9 w9 S
4 回復(fù):經(jīng)典C源程序1005 i* [. W" u8 j* P# X
1.程序分析:利用輾除法。 ; f; M! r( j( u: f  T

' v# K# W: [. U# |# N2.程序源代碼:
" W, d$ @5 K: F2 S2 @main()
9 {, T  d% l& Z( d8 q% J8 B{
' |6 ?2 e9 S; M: z# y, X2 t9 D2 qint a,b,num1,num2,temp; 0 p; T1 g7 w7 h7 l, f* a2 x
printf("please input two numbers:\n");
3 j2 B  }2 K: D3 X8 `$ sscanf("%d,%d",&num1,&num2); ) T& @7 N( U3 f% u6 o6 W/ _4 g
if(num1 { temp=num1;
% [7 K9 {) ]7 k  f) Pnum1=num2;
( `2 X0 z2 b0 [% q( _7 \, g/ J- X" Anum2=temp;   ?" H3 X, ^2 y0 ?7 K5 R3 E3 |
} & h& Q! S8 M9 P! f9 d
a=num1;b=num2;
, W" b, H& [. @9 K) |while(b!=0)/*利用輾除法,直到b0為止*/
9 I# t+ G0 w# ~/ [. \1 @{
3 P1 ~! Z9 h" Qtemp=a%b; + m1 l& o7 E7 F: _) [
a=b;
( Z' @* z6 L( `, jb=temp; 4 {0 Y. C" e2 `* |' r
} ( y. |8 t) w8 x, P7 T5 e7 C5 G
printf("gongyueshu:%d\n",a); ' \5 u8 ]; O' H& g% n. H$ F+ f
printf("gongbeishu:%d\n",num1*num2/a);
3 Q- H$ T2 H& N, [/ u/ i} ) n# {* }- _& W3 R, _. l
==============================================================
8 P7 U3 K* [- S1 }# u. w. O【程序17
6 A. V- o4 ]: |( I* z題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。 " h5 c$ l6 l0 W
1.程序分析:利用while語(yǔ)句,條件為輸入的字符不為'\n'.
- M' g( C. Y, K- i' i
; n# T. {4 G6 A2 g( r2.程序源代碼: / T( K  L( G2 z% \) X
#include "stdio.h" 7 B, u0 b) S' K; }3 Y  q
main() 9 l2 L+ s! |8 Y- ~$ d7 v! l
{char c; 5 J! x0 Z) O- {# N
int letters=0,space=0,digit=0,others=0; % w4 |) y" f! S- Y6 I
printf("please input some characters\n"); 9 k6 z1 g0 z9 ^7 \, C& P1 z0 C
while((c=getchar())!='\n')
' Q. a9 D( s% x$ @( h% A{
5 C' W# c: E2 T: Q/ y: q7 U$ [7 Eif(c>='a'&&c<='z'||c>='A'&&c<='Z') - I% k' c- v  s0 Z8 G) J0 P- y
letters++;
9 M$ M9 J; s/ ^  X# G: m" j* celse if(c==' ')
: h( B! c& w% y% L$ nspace++;
4 A2 L) ~" I( B, F' f+ celse if(c>='0'&&c<='9') " K& ?( }( ?% l; a/ K+ c& a
digit++; % V) s* ^; D, ^0 h/ \
else
0 e! E9 Z* P7 S1 |, Wothers++; 9 |# O( Y, P2 i
}
& K# S- b7 I: y. d/ Z+ n& pprintf("all in all:char=%d space=%d digit=%d others=%d\n",letters,
5 C; u$ K5 L0 T3 k$ bspace,digit,others);
+ B$ f/ C  \$ h) y  _}
6 Q8 z) |0 e! T+ F& `- ^============================================================== + }+ m* h+ x' }' D/ |7 J* G
【程序18
# f( i6 t7 q# ~" M! O8 s題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí) 3 S- y7 z! C! ^+ s2 `6 w: I: r7 @
共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤(pán)控制。
! L& _7 X! ]. c+ D" k1.程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值。
9 z  B& B8 a1 C8 y5 W6 g2.程序源代碼: ! v7 `$ P7 d$ q' E1 T
main()
: A+ a, c( C. R  s: N{
8 e( X$ t6 X5 O) i4 l9 V& Hint a,n,count=1; 1 ~  U4 l6 b- j1 ^( T" R& d
long int sn=0,tn=0;
& _8 D& g" _0 I% z8 w/ Cprintf("please input a and n\n"); ; q; c* I  I+ _, k2 l! i
scanf("%d,%d",&a,&n); 6 r/ ]+ g" \7 |; E
printf("a=%d,n=%d\n",a,n);
# j+ S: R, R0 O8 p& D/ e- G9 S6 c' E+ xwhile(count<=n)
/ ]+ i7 i/ K8 [: G+ f{ 2 n0 b) |- C- U4 @" s; Z
tn=tn+a; ; z: I9 {# p& g# }! M1 v; Y
sn=sn+tn; ) v7 e% w8 O$ C/ ]
a=a*10;
; [1 t$ ~( y( x8 E/ _/ h; N7 Y# J++count;
; V0 R3 k  e5 z6 w9 {- v2 F}
( K( d0 V4 R9 Z( V0 s8 q1 g/ Fprintf("a+aa+...=%ld\n",sn);
8 f- \2 d  V( p- V  Q, \- U}
+ {1 f6 |: f8 p============================================================== 9 q4 N- p. E+ R( p
【程序19
' ?& f, h( b' ~! u; V3 A+ |題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱(chēng)為完數(shù)。例如6=123.編程 2 B: W8 q3 ^! o- n5 R
找出1000以?xún)?nèi)的所有完數(shù)。
! p8 p6 U, D: B1. 程序分析:請(qǐng)參照程序<--上頁(yè)程序14.
5 N; j! X0 {* A, n0 o6 ~5 y2 S2.程序源代碼: 1 x2 o6 E3 C" h" d
main() * x0 W/ m: Y8 s2 O/ p
{ , Q4 c9 H4 `9 J- K0 _% r1 l; r% U
static int k[10];
$ m' z+ M& d' Z' N8 ^! U* eint i,j,n,s; ) W' o( O$ p' O
for(j=2;j<1000;j++) 0 Y6 F( N/ R0 g
{
6 N6 T5 g5 n- p3 e' R" W) O1 Y" qn=-1;
6 x3 L$ k. @2 y- F  Rs=j; : O, r, c! I' k5 C
for(i=1;i {
+ T" v5 G" H# }if((j%i)==0)
$ e4 \* _% }0 L+ N0 C! J5 \{ n++; % A& h! o( L* Q6 R
s=s-i;
  v/ l& q5 G# Y" _k[n]=i; : U9 y" ^2 h7 [4 ^9 Y
} " N4 \* @+ u  C# H6 O3 P. [% R
}
1 a# o; g- M2 P% l$ o! T) [if(s==0) ; p) ^% s6 ]) }% G
{
5 X+ a6 |' O* J1 xprintf("%d is a wanshu",j);
8 `4 |8 I3 ~$ ]+ D8 I+ g8 ]for(i=0;i printf("%d,",k);
' Z" Q' M/ C. B: r, Xprintf("%d\n",k[n]);
3 U+ p4 s" k: N& y} # ^* @& s  S2 g* e. a+ M
}
+ _/ f6 Q  X+ g  N& E} 7 S; b( S2 L/ S) B, b  d0 g
==============================================================
4 Q$ l' I$ a) w- k; {+ V【程序202 V' {5 X" C) q7 y9 ]! I
題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 / A: ~: J8 h: Z
10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高? ) b! H2 g, u0 c0 d7 j
1.程序分析:見(jiàn)下面注釋
- {7 a: E/ [0 S0 k7 C9 g- Z2.程序源代碼: # K1 E# k/ ]+ [9 G4 u+ t
main() $ D8 U0 A9 G$ ~" q
{
$ ]+ H" |! \7 u2 c/ l6 k; v+ J, N$ Rfloat sn=100.0,hn=sn/2; " v0 f1 [) U1 R' r$ u
int n;
7 I7 Y3 R" X% f" I; J1 ifor(n=2;n<=10;n++)
7 I, G9 ^! O9 ^. c{
$ A0 ~- {3 }3 K. V, G/ p  E; @: h4 Dsn=sn+2*hn;/*n次落地時(shí)共經(jīng)過(guò)的米數(shù)*/
# x$ D4 M/ o7 Y4 n6 T5 x1 Shn=hn/2; /*n次反跳高度*/ ! r# O( n- J) M5 p6 i' j
}
2 @6 _& H5 `) \1 U/ g0 j9 Sprintf("the total of road is %f\n",sn);
$ ]7 z" ^7 b* g- X; m7 q* zprintf("the tenth is %f meter\n",hn); & n! I" U% o4 o8 B
}
【程序21
題目:猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)- l. [# Q2 n7 Z) b
   第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下8 X+ C6 t4 q# [: _) y& c; q
   的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。5 S3 D4 X; R2 q% H* G5 F- [8 z
1.程序分析:采取逆向思維的方法,從后往前推斷。
/ q7 y6 q" [# S4 X% g2.程序源代碼:
; h' y8 i  x  B2 bmain()7 ~7 _5 ^" Y- S  X- z+ [' S# g- j
{/ X7 H+ ?" M& I+ _+ K5 g; y
int day,x1,x2;
4 ^5 i+ o0 s8 Uday=9;: K/ i, l* b/ P, f
x2=1;
1 W& P, Y9 q3 ?while(day>0)) X0 [( O6 T% s( E9 s4 @( u, m
 {x1=(x2+1)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2*/
" `9 D3 G6 ^* T6 ]( u' B* a7 V1 G x2=x1;
2 g/ q6 [1 J, [$ Y1 M2 B day--;$ D! G  g- q' J# k4 e  e
 }
( N8 Z5 L/ \3 j  |$ V* S- Bprintf("the total is %d\n",x1);
3 h' P6 F! u7 U+ F}( Z/ `3 O* z' n: \, N7 l" J
==============================================================. ^+ N) C' ?7 c' }4 m1 S+ Z
【程序22
$ [7 {8 v* U9 \4 l$ }6 Y題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定
# k6 i' m4 d' i2 V   比賽名單。有人向隊(duì)員打聽(tīng)比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出" u' w9 Y* o* g1 e9 H& U) C
   三隊(duì)賽手的名單。
, u# g: [) A0 g1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2sqrt(這個(gè)數(shù)),如果能被整除,
7 q7 J$ x1 @) r5 Z( ~1 ~      則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。       
+ l  T( u7 ?. c9 H3 l2.程序源代碼:
! C3 W) a( F- U8 ~. ~" S6 Hmain()  I, d: B( Q9 ]% V5 _4 T9 ~& b
{
" b4 z0 n6 a7 V8 Ichar i,j,k;/*ia的對(duì)手,jb的對(duì)手,kc的對(duì)手*/2 K+ `5 @) h0 ^5 d( v
for(i='x';i<='z';i++)3 p" R: a4 _! M+ n1 j% _* K" m
 for(j='x';j<='z';j++)
" D) G* \  \& u+ H {
" {! v1 T7 b  e# ?0 m; J+ \) @0 c" F; b if(i!=j)
  T6 }) }, A8 S9 G) s1 z  for(k='x';k<='z';k++)9 [/ C! l" f- u
  { if(i!=k&&j!=k)' |: |1 T2 X% \: W: z. h
   { if(i!='x'&&k!='x'&&k!='z')0 Z/ u& e! h* F, i, j" S, s
   printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);) s; R2 ?* S. @& @) q* N
   }
) Z& p5 _! a5 k7 Y- s7 }% i  }
& x/ o: y) O. L- H }
" g/ h$ z( S2 \. n}3 Q# a) ^7 O  r* x# A
==============================================================
  L. j$ P8 E! v1 e8 l【程序23. [8 Z* V7 Z% C
題目:打印出如下圖案(菱形)
*
. q( @4 ^$ S  v+ A& m  h7 E- V***0 G, q* A& D* y* y1 |2 E
******6 ~) l9 O" S( s# ^" K$ `
********
5 ?$ u6 i5 U# S; a" M7 j5 C******
: h8 j5 j6 d2 H: k0 L***" q5 y8 ~/ e2 H
*
3 e6 l+ a$ M8 ^% o: e1.程序分析:先把圖形分成兩部分來(lái)看待,前四行一個(gè)規(guī)律,后三行一個(gè)規(guī)律,利用雙重, e- V, X- X$ t+ d- [: ~. p
      for循環(huán),第一層控制行,第二層控制列。 # e) n! y. R5 ~( G' L5 y1 n
2.程序源代碼:* I5 R* \9 B: ~; K8 W# V
main()
! Y( J7 }% P9 I8 h( \& i' G4 z7 o{3 _" c. k: o/ l
int i,j,k;, T- T' g( k" t* ?2 {$ |
for(i=0;i<=3;i++)
& {) ]) M( [; }" m% k4 S% ?  v {# a+ B( k: s+ `! }+ B
 for(j=0;j<=2-i;j++)
7 f/ D8 U" x' Y4 w6 S  printf(" ");, {# L! Q& l+ Z# L+ ~3 m1 z2 ]
 for(k=0;k<=2*i;k++)
+ [7 S4 g& N2 D" g  printf("*");
% Y8 B( c, f# a, Y- u5 {/ z printf("\n");
6 G% Y6 B; [0 }( N9 M }4 W2 G" n- C' \/ _& ~, D3 D; j" r" S
for(i=0;i<=2;i++)
) ^8 M2 ^" k: |6 \2 a: c {
& M( B$ W( u% G, l) H for(j=0;j<=i;j++)" X1 \2 {& g5 G& B" L
  printf(" ");
& w, j2 U# \9 L; a for(k=0;k<=4-2*i;k++)% g7 g' {* b+ T0 A. j+ x
  printf("*");
9 k0 n0 H( C* }- b& E$ d+ E printf("\n");5 b/ v. l# {5 s6 W% ~
 }
, Q( Y9 K0 _2 G$ a}
; K% U5 @) j- s+ J2 T, d==============================================================
+ Z" G# b5 N$ [7 q+ Z' `+ `: h【程序24
6 s8 P# j/ u. m( o題目:有一分?jǐn)?shù)序列:2/13/25/38/513/821/13...求出這個(gè)數(shù)列的前20項(xiàng)之和。" C/ S5 b# w( u) y: F5 a# ~$ B
1.程序分析:請(qǐng)抓住分子與分母的變化規(guī)律。
% S  G8 e/ g* M/ j9 _# z+ p2 r2.程序源代碼:7 K+ [3 i6 h* y% E
main()" e- \: D8 S2 w0 U
{
1 P6 P. E2 B/ A- L( X. Iint n,t,number=20;
+ z3 f) @' a, f6 G' n2 j3 ^float a=2,b=1,s=0;1 z5 r5 ^/ ?7 n8 ?, O5 }
for(n=1;n<=number;n++)' \# z1 e9 H7 y( z# j6 F% o$ o
 {
3 r) w/ V9 p7 c- N1 J7 j* r5 K s=s+a/b;& z+ S, e' X) U) k: F5 x8 l
 t=a;a=a+b;b=t;/*這部分是程序的關(guān)鍵,請(qǐng)讀者猜猜t的作用*/
2 Y, L- F: I* [, H2 c }
* l, C2 T$ o2 X2 Tprintf("sum is %9.6f\n",s);
* H& n2 S! m+ j  Q! d, }}' O& g- Y( d* I& t9 G
==============================================================
/ y8 f' ?. I' E2 i6 G3 r4 l【程序25嵌入式學(xué)習(xí)企鵝要妖氣嗚嗚吧久零就要; d) N  |+ d% s5 Y" s" \/ T/ Y
題目:求1+2!+3!+...+20!的和; F  l2 C6 s0 h1 V$ G. I
1.程序分析:此程序只是把累加變成了累乘。 # d6 r" Z2 O8 E' |# X! C: r
2.程序源代碼:: t6 ~% r8 X7 O
main()( h6 |9 m$ z7 h% {' T+ S$ x) r9 \9 H
{  b7 _# _. @7 }- J
float n,s=0,t=1;5 {5 C! d( f% ]6 d
for(n=1;n<=20;n++)% z$ x/ g3 a8 O: [
 {$ p0 n0 {& [9 v
 t*=n;
# J, L3 N0 j* v, m, V* h2 ]* p# m s+=t;9 s$ _6 G! a& A" y9 v: G9 N" p
 }
5 n: o! g& k  \/ ]: zprintf("1+2!+3!...+20!=%e\n",s);
/ ]# @. X+ {, H$ }9 P}! Y6 X# U! h% o$ P; l+ `: X
==============================================================# c  W8 n+ R2 u* S, x: S
【程序26
1 m+ \; y* N. S. ^: a+ ~題目:利用遞歸方法求5!
' P% t& @/ E6 }2 E5 t1 t5 E1.程序分析:遞歸公式:fn=fn_1*4!; C5 Q. u! w5 m0 N3 G% W4 r
2.程序源代碼:
) g3 f' |9 N5 @- F; _! b% P7 T#include "stdio.h"+ _: Q3 W$ e. j. @9 G
main()
0 {- p! c1 r& |0 O) U6 T$ |! ~{
  h  g" M# `; I2 |6 V& y$ Sint i;
+ t6 c# s7 w. @- C6 v/ |% bint fact();
2 P( c6 M/ c- n# X1 |5 Ufor(i=0;i<5;i++)
. n/ T2 ]0 }/ w* { printf("\40:%d!=%d\n",i,fact(i));
3 U" G4 h* Y5 ?+ `/ i6 P0 ]* y}
, D  v6 J1 A4 ?6 p1 Gint fact(j)  {3 }  w  y9 K" ?
int j;8 v8 Y, H1 T+ U
{% C' U' c) a! D" s0 H
int sum;
2 v0 \, w9 C6 i0 Gif(j==0)
8 [4 @% u& |! u1 Q% C& N# i$ v- N7 a sum=1;" r( z! B' G3 y7 \
else/ m" ]1 a- _& D5 \8 F4 r, \
 sum=j*fact(j-1);
1 d( C: ]5 O! P: f1 _) Treturn sum;6 }: C4 h( Z7 g1 S6 I" r1 {; _% K2 F) B
}
! |, o8 s5 H; h7 _; Y==============================================================
+ n0 ?9 n8 Q, }  u/ c. _
回復(fù)

使用道具 舉報(bào)

2#
發(fā)表于 2017-10-9 21:23:19 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號(hào)-1,京ICP證050210號(hào),浙公網(wǎng)安備33038202004372號(hào) )

GMT+8, 2025-5-8 12:57 , Processed in 0.071142 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲女同第一区| 久久精品国产只有精品66| 欧美精品一区二区三区人妻久久久 | 色婷婷综合激情一区二区| 欧美成人欧美va天堂在线电影| 无码中出人妻中文字幕av| 国产亚洲精久久久久久无码| 亚洲国产精品一区二区制服| 国产女人18毛片水真多18精品| 涩欲av一区二区三区| 99久久久精品国产一区二区 | 5858s亚洲色大成网站www| 亚洲另类精品无码专区| 亚洲欧洲日产国码二区| 苍井空一区二区波多野结衣av| 亚欧色一区w666天堂| 免费看黄片一区二区三区| av中文一区在线| 丰满少妇被猛烈进入无码| 亚洲人成色99999在线观看| 熟女少妇一区二区中文字幕 | 50岁的熟女一区二区三区| 免费看久久妇女高潮a| 国产美女视频免费的| 久久久久久久久久久免费精品| 国产传媒一区在线| 国内精品久久人妻无码不卡| 麻豆人妻少妇精品无码专区| 国产乱人伦精品一区| 成人动漫久久一区二区| 欧美视频二区欧美影视| 波多野结衣在线精品视频| 一区二区在线播放av| 国产精品欧美一区乱破| 国产精品高潮一区二区三区 | 亚洲一区二区日韩| 人人爽人人爽人人片av东京热| 国产农村黄aaaaa特黄av毛片| 99蜜桃臀久久久欧美精品网站| 日韩精品一区二区三区毛片免费 | 欧美日韩精品久久免费|