题目1050:完数-----------runtime error的问题

完数也是简单的模拟,for加for就可以;

AC:

#include<iostream>
using namespace std;

int main()
{
	int n;int b[1000];
	while(cin>>n)
	{   
		int i,j,k=0;
		
		int sum=0;	
	 	
		 
		for (i=1;i<=n;i++)   //换成for(i=n;i>=1;i--)就会出现runtime error 的问题
		{
		   sum=0;						 
		     for (j=1;j<i;j++)
			  	if ((i%j)==0) sum=sum+j; 
			  if (sum==i) 
			    b[k++]=i; 	 	   
		} 
		for (i=0;i<k;i++)
		{
			if (i!=0) cout<<" ";
			cout<<b[i];
		} 
		cout<<endl;		
	} 
	return 0;
} 

  

posted @ 2017-02-27 16:31  贱人郭  阅读(119)  评论(0编辑  收藏  举报