c语言课件习题课.pptVIP

  • 12
  • 0
  • 约1.87万字
  • 约 83页
  • 2017-03-14 发布于广东
  • 举报
c语言课件习题课

用数的分离方法求解例4.32的水仙花数。 void main int i,j,k,num; for num 100;num 999;num++ i num/100; /*分离出百位数*/ j num/10-i*10; /*分离出十位数*/ k num%10; /*分离出个位数*/ if num i*i*i+j*j*j+k*k*k printf “%4d”,num ; printf “\n” ; 用穷举法求出所有水仙花数。 void main int i,j,k,m1,m2; printf “narcissus numbers are:” ; for i 1;i 9;i++ for j 0;j 9;j++ for k 0;k 9;k++ m1 i*100+j*10+k; m2 i*i*i+j*j*j+k*k*k; if m1 m2 printf “%4d”,m1 ; printf “\n” ; 输出1—999所有同构数(出现在它的平方数右侧)如:5出现在25右侧,25出现在625右侧 main long k , m , n ; for k 1;k 999;k++ m k*k ; if k 10 n m%10 ; else if k 100 n m%100 ; else n m%1000 ; if k n printf ”%d\n”,k ; 求用100元钱买100只鸡(每种鸡的只数≥1)的所有买法,其中:1只公鸡5元、1只母鸡3元、3只小鸡1元。 main int i,j,k; for i 1 ; i 20 ; i++ for j 1 ; j 34 ; j++ k 100-i-j; if k%3 0 i*5+j*3+k/3 100 k Print “%d,%d,%d\n”,i,j,k ; 百钱买百鸡解法二 main int x,y,z; printf \n ; for x 1;x 100;x++ for y 1;y 100;y++ for z 1;z 100;z++ if x+y+z 10015*x+9*y+z 300z%3 0 printf %3d%3d%3d,x,y,z ; 二、求累加、连乘的算法: 1、循环条件 次数控制(加多少项n,20,100 用误差控制(直到某一项小于或大于一个数) 使用终止标记 2、循环体 求和 求每一项:从前一项求出后一项、单独求每一项 为下一项作准备 3、 循环初值: 设为0、设为第一项 注意双重循环设初值的位置 (1)给累乘器赋初值,一般为1; (2)用循环语句实现累乘; for(循环变量赋初值;循环条件;循环变量改变规律) (3)循环体设计。 累乘器当前值 累乘器原值*循环变量当前值; 累乘器赋初值 计算 7+72+73+······+7n main int i,n; long t 1,s 0; printf please input n:\n ; scanf %d,n ; for i 1;i n;i++ t* 7; s+ t; printf 7+7*7+7*7*7+... %d\n,s ; 计算 main float sum 0 , term ,x; int n , j , k ,sign ; scanf ”%d%f” , n , x ; sign - 1 ; for j 1 ; j n ; j+ + term 1 ; for k 1 ; k 2*j-1 ; k+ + term* x / k ; sign - sign ; sum + sign * term ; printf ”sum %f\n” , sum ; 打印如下乘法表: 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9

文档评论(0)

1亿VIP精品文档

相关文档