本题用到了vector,和vector相关的一些函数,注意解题、输出的细节
#include <iostream>
#include <vector>
#include <cstdio>
#include <string>
using namespace std;
int main() {
//由于要存储到最后用来输出的“数组”是动态增长的,所以用vector
vector<int> Evec; //完数
vector<int> Gvec; //盈数
for(int num = 2;num<=60;num++){
int sum = 0;
for(int i = 1;i<num;i++){ //注意这里因子1仍要算进去,题目只排除了该数本身
if(num%i == 0){
sum += i;
}
}
if(sum == num){
Evec.push_back(num); //push_back()的使用
}
else if(sum > num){
Gvec.push_back(num);
}
}
//注意输出格式
printf("E:");
//使用迭代器(可以理解为指针)访问,输出时要加*
//访问vector元素也可以使用下标vector[i]和vector.size()
for(vector<int>::iterator it1 = Evec.begin();it1 != Evec.end();it1++){
printf(" %d",*it1);
}
printf("\n");
printf("G:");
for(vector<int>::iterator it2 = Gvec.begin();it2 != Gvec.end();it2++){
printf(" %d",*it2);
}
printf("\n");
}

京公网安备 11010502036488号