C语言常用算法大全1.doc

C语言常用算法大全1.doc

1、非数值计算常用经典算法 1.穷举 也称为“枚举法”,即将可能出现的每一种情况一一测试,判断是否满足条件,一般采用循环来实现。 例1、用穷举法输出所有的水仙花数(即这样的三位正整数:其每位数位上的数字的立方和与该数相等,比如:13+53+33=153)。 [法一] main() {int x,g,s,b; for(x=100;x=999;x++) {g=x%10; s=x/10%10; b=x/100; if(b*b*b+s*s*s+g*g*g==x)printf(%d\n,x);} } 【解析】此方法是将100到999所有的三位正整数一一考察,即将每一个三位正整数的个位数、十位数、百位数一一求出(各数位上的数字的提取算法见下面的“数字处理”),算出三者的立方和,一旦与原数相等就输出。共考虑了900个三位正整数。 [法二] main() {int g,s,b; for(b=1;b=9;b++) for(s=0;s=9;s++) for(g=0;g=9;g++) if(b*b*b+s*s*s+g*g*g==b*100+s*10+g) printf(%d\n,b*100+s*10+g); } 【解析】此方法是用1到9做百位数字、0到9做十位和个位数字,将组成的三位正整数与每一组的三个数的立方和进行比较,一旦相等就输出。共考虑了900个组合(外循环

文档评论(0)

1亿VIP精品文档

相关文档