在求连乘时,由于每乘一次结果增长都非常快,所以应该注意是否会出现溢出的问题。
循环程序设计思路:
(1)输入是什么?用来确定原始值。
(2)输出是什么?确定应该输出的结果。
(3)从输入转换为输出需要怎样的步骤,是否需要重复(确定是否需要使用循环语句以及循环语句的内容)。
(4)如果需要重复,能否提前预知重复的次数?用来确定使用while、do while、for中的哪种循环语句。
(5)何时不再需要重复?用来确定循环条件以及循环体中使循环条件趋近于0的语句。
例:水仙花数、四叶玫瑰数、五角星数、六位数的问题。
水仙花数:每位数字的3次幂之和等于它本身。例:1^3 + 5^3 + 3^3 = 153。
四叶玫瑰数:每位数字的4次幂之和等于它本身。
五角星数:每位数字的5次幂之和等于它本身。
六位数:每位数字的6次幂之和等于它本身。
// 打印出所有的水仙花数
int i,j,k,n,s;
for(i = 1;i <= 9;i++)
for(j = 0;j <= 9;j++)
for(k = 0;k <= 9;k++)
{
n = k * k * k + j * j * j + i * i * i;
s = i * 100 + j * 10 + k;
if (n == s)
{
printf("%dn",n);
}
}
或:
// 打印出所有水仙花数
int i,j,k,n,s;
printf("水仙花数有:n");
for(n = 100;n < 1000;n++)
{
i = n / 100; /*分解出百位*/
j = n / 10 % 10; /*分解出十位*/
k = n % 10; /*分解出个位*/
s = i * i * i + j * j * j + k * k * k;
if(s == n)
{
printf("%dn",n);
}
}
最后我用例子来总结一下吧! 下面的例子是一个对1-10这10个数求和的例子。
复制代码
int i, sum = 0, num = 10; // 声明几个变量:i 计数, sum 存储最后的总和, num 表示多少个数,用来控制边界。
for(i = 1; i <= num; i++) // for语句包含三个语句,用;隔开。
{ //1设置初始值,2边界控制,3通常用来调整计数值。
sum += i; // 相当于 sum = sum + i; 表示不断地加i。 {}内的语句均为循环体,用4表示。
} // for循环的执行顺序为 1-2-4-3-2-4-3-2-4-3-2................直到i > num.这时,将退出循环。










