c语言程序设计
C 语言程序设计
些实际问题的解决 ■取数字问题 ■分硬币问题 ■因子、完数问题 ■数列问题 ■解简单方程 ■勾股数、弦数问题 ■其他
一些实际问题的解决 ◼ 取数字问题 ◼ 分硬币问题 ◼ 因子、完数问题 ◼ 数列问题 ◼ 解简单方程 ◼ 勾股数、弦数问题 ◼ 其他
取数字问题 ■设某四位数的千位数字平方与十位数字的 平方之和等于百位数字的立方与个位数字 的立方之和,例如,对于四位数:3201, 3^2+0^2=2^3+1^3。试问所有这样的四位 数之和是多少?(97993) ■分析:关键在于怎么求出一个四位数的各 位上的数字
取数字问题 ◼ 设某四位数的千位数字平方与十位数字的 平方之和等于百位数字的立方与个位数字 的立方之和,例如,对于四位数:3201, 3^2+0^2=2^3+1^3。试问所有这样的四位 数之和是多少?(97993) ◼ 分析:关键在于怎么求出一个四位数的各 位上的数字
maino int i a b c d long s=0 for(i=1000;i=9999;i++) {a=i1000 b=i%1000/100 c=i%100/10 d=i%10 if (a'a+c*c==b*b*b+dd*d) s=s+; printf( result: /ldn", S);
main() { int i,a,b,c,d; long s=0; for( i=1000; i<=9999; i++) printf("Result:%ld\n",s); } { a=i/1000; b=i%1000/100; c=i%100/10; d=i%10; if (a*a+c*c==b*b*b+d*d*d) s=s+i; }
取数字问题 求五位数各位数字的平方和为100的最大的 五位数。(94111 main dlong for(x=9999;X10000;x-) a=x/10000;b=×%100001000;c=×%1000100 d=x%0100/10:e=x%10: if( a*a+b*b+c*c+d*d+e*e=100)break;) printf(" Max: %ldn,,x):)
取数字问题 ◼ 求五位数各位数字的平方和为100的最大的 五位数。(94111) main() {long x; for( x=99999; x>10000; x-- ) {a=x/10000; b=x%10000/1000; c=x%1000/100; d=x%100/10; e=x%10; if( a*a+b*b+c*c+d*d+e*e==100 ) break; } printf(“Max : %ld\n”, x); }
取数字问题 设某四位数的千位数字与十位数字的和等于百位数字与个位数 字的积,例如,对子四位数:9512,9+1=5=2,试问所有这样 的四位数之和是多 √有一个三位数满足下列条件:(1)此三位数的三位数字各不相同 2)此三位数等于它的各位数字的立方和。试求所有这样的三位 数之和。 ˇ有二个三位数满足下列条件:(1)此三位数的三位数字各不相回 (2)此三位数等于它的各位数字的立方和。试求所有这样的三位 数中最大的一个是多少? 有一个三位数满足下列条件:(1)此三位数的三位数字各不相同 (2)此三位数等于它的各位数字的立方和。试求这种三位数共有 多少个? 水仙花数”是指三位数,其各位数字的三次方之和等于该数 本身,例如:153=1^3+3^3+5~3,故153是水仙花数,求[100, 999所有水仙花数之和 回文数是指正读和反读都一样的正整数。求出[1000,999以 内的所有回文数的个数
取数字问题 ✓ 设某四位数的千位数字与十位数字的和等于百位数字与个位数 字的积,例如,对于四位数:9512,9+1=5*2,试问所有这样 的四位数之和是多 ✓ 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位 数之和。 ✓ 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位 数中最大的一个是多少? ✓ 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求这种三位数共有 多少个? ✓ “水仙花数”是指三位数,其各位数字的三次方之和等于该数 本身,例如:153=1^3+3^3+5^3,故153是水仙花数,求[100, 999]所有水仙花数之和。 ✓ 回文数是指正读和反读都一样的正整数。求出[1000,9999]以 内的所有回文数的个数
分硬币问题 ■有30个人在一家小饭店里用餐,其中有男人、女 人和小孩,每个男人花了3先令,每个女人花了2 先令,每个小孩花了1先令,共花去50先令。如 果要求男人、女人和小孩都有人参与,试求有多 少种方案分配男人、女人和小孩的人数。(9) ■分析:利用穷举法的思想,把所有可能的数据组 合一一验证。注意要满足题设所有要求,一是人 数总共为30,二是钱花去50
分硬币问题 ◼ 有30个人在一家小饭店里用餐,其中有男人、女 人和小孩,每个男人花了3先令,每个女人花了2 先令,每个小孩花了1先令,共花去50先令。如 果要求男人、女人和小孩都有人参与,试求有多 少种方案分配男人、女人和小孩的人数。(9) ◼ 分析:利用穷举法的思想,把所有可能的数据组 合一一验证。注意要满足题设所有要求,一是人 数总共为30,二是钱花去50
maino int a, bCj=0 for(a=1;a<17;a++) for(b=1;b<25;b++) for(C=1;c≤30;c+) f(a+b+c==30&&3*a+2*b+==50)i++; printf(" result %d",i) getch o
main() { int a, b, c, i=0; for( a=1; a<17; a++ ) for( b=1; b<25; b++ ) for( c=1; c<30; c++ ) if( a+b+c==30 && 3*a+2*b+c==50 ) i++; printf(“ Result: %d ", i); getch (); }
分硬币问题 50元的整币兑换成5元、2元和1元币值(要 求三种币值均有)的方法有多少种。(106) maino int i,j,k, s=0; for(i=1;i<50;i++) for(j=1;」<25;j++) for(k=1;k<10;k++) f(i+2j+5*k==50) S+H printf ("The num is: %d in",s)
分硬币问题 ◼ 50元的整币兑换成5元、2元和1元币值(要 求三种币值均有)的方法有多少种。(106) main() {int i, j, k, s=0; for( i=1; i<50; i++) for( j=1; j<25; j++) for( k=1; k<10; k++) if ( i+2*j+5*k==50 ) s++; printf ( "The num is : %d \n" , s ); }
分硬币问题 ■把一张一元钞票,换成一分、二分和五分硬 币,每种至少8枚,问有多少种方案? 50元的整币兑换成5元、2元和1元币值( 种币值均有、缺少一种或两种都计算在内) 的方法有多少种。 ■用100元买100只鸡,大公鸡5元1只,母鸡3元 1只,小鸡1元3只。问各能买多少只?
分硬币问题 ◼ 把一张一元钞票,换成一分、二分和五分硬 币,每种至少8枚,问有多少种方案? ◼ 50元的整币兑换成5元、2元和1元币值(三 种币值均有、缺少一种或两种都计算在内) 的方法有多少种。 ◼ 用100元买100只鸡,大公鸡5元1只,母鸡3元 1只,小鸡1元3只。问各能买多少只?