赞
踩
运算符、逻辑表达式、关系表达式。
循环结构及嵌套循环。
分支结构。
数组。
1、定义数组并将其元素全部赋值为0,用于储存整数逐位分离后的数。
2、利用循环遍历1到10000间所有整数。
3、利用嵌套循环实现整数的逐位分离,接下来以整数1234为例分析嵌套循环程序功能:
a、取个位数字,并将所得数存放到数组中。如第一次循环:a[0]=1234%10=4 第二次循环:a[1]=123%10=3……
b、每次循环,都将丢弃个位数字,成为一个新数字。如第一次循环:1234 / 10 = 123 第二次循环:123 / 10 = 12……
4、计数器更新次数比分离后所得数的数量多1,即多执行了一次j++,故需要j--。
5、利用嵌套循环计算分离后各位数的立方和。
6、嵌套if语句判断i是否为水仙花数。注意符号为“==”而不是“=”。
#include<stdio.h> #include<math.h> int main() { int a[5] = { };//定义数组并将其元素全部赋值为0,用于储存整数逐位分离后的数 int n = 0, count = 0; for (int i = 1; i <= 10000; i++)//利用循环遍历1到10000间所有整数 { int j = 0, sum = 0; n = i;//将i的值赋给n for (j; n > 0; j++)//利用嵌套循环实现整数的逐位分离,接下来以整数1234为例分析8到13行程序功能 { a[j] = n % 10;//取个位数字,并将所得数存放到数组中。如第一次循环:a[0]=1234%10=4 第二次循环:a[1]=123%10=3…… n /= 10; //每次循环,都将丢弃个位数字,成为一个新数字。如第一次循环:1234 / 10 = 123 第二次循环:123 / 10 = 12…… } j--;//计数器更新次数比分离后所得数的数量多1,即多执行了一次j++,故需要j-- for (j; j >= 0; j--)//利用嵌套循环计算分离后各位数的立方和 sum = sum + pow(a[j], 3); if (sum == i)//嵌套if语句判断i是否为水仙花数。注意符号为“==”而不是“=” { printf("%d\n", i); count++; } } printf("共%d个", count); return 0; }
#include<stdio.h> #include<math.h> int main() { int i, s, n, d, count = 0; for (i = 1; 1 <= 10000; i++) { s = 0; n = i; while (n != 0) { d = n % 10;//分离各位数字 s = s + pow(d,3);//计算各位数三次方的和 n = n / 10; } if (s == i) //判断是否为水仙花数 { printf("%d\n", i); count++; } } printf("共%d个\n", count); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。