原题链接:[编程入门]完数的判断
解题思路:
定义一个数组存储因子,方便输出
第一个外循环:用于遍历6~输入的范围数
第一个内循环:用于得到因子并存储
第二个内循环:用于求因子之和
第三个内循环:用于判断因子之和是否与外循环里的初值相等,若相等按题目要求输出格式输出
注意事项:
数组元素的个数,由第一个外循环的循环初值的因子数目决定,需要在求因子时自增
后续的循环时,要将下标-1,因为多自增了一次会导致数组越界
满足条件时,因子数的输出之间有空格,且最后没有空格(利用if条件判断体,单独写一个输出语句)
参考代码:
#include <iostream> using namespace std; int main() { int N,list[1000],sum,arr; cin>>N; for(int i=6;i<=N;i++)//第一个外循环 { arr=0; sum=0; for(int j=1;j<=i/2;j++)//第一个内循环 { if(i%j==0) { list[arr]=j; arr++; } } arr=arr-1; for(int k=0;k<=arr;k++)//第二个内循环 { sum=sum+list[k]; } if(sum==i) { cout<<i<<" "<<"its factors are "; for(int z=0;z<=arr;z++)//第三个内循环 { cout<<list[z]<<" "; } cout<<endl; } } return 0; }
0.0分
15 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复