1. 程式人生 > >技巧1 以空格分隔 第一個最後一個數後無空格

技巧1 以空格分隔 第一個最後一個數後無空格

題目內容:

一個正整數的因子是所有可以整除它的正整數。而一個數如果恰好等於除它本身外的因子之和,這個數就稱為完數。例如6=1+2+3(6的因子是1,2,3)。

現在,你要寫一個程式,讀入兩個正整數n和m(1<=n<m<1000),輸出[n,m]範圍內所有的完數。

提示:可以寫一個函式來判斷某個數是否是完數。

輸入格式:

兩個正整數,以空格分隔。

輸出格式:

其間所有的完數,以空格分隔,最後一個數字後面沒有空格。如果沒有,則輸出一行文字:

NIL

(輸出NIL三個大寫字母加回車)。

輸入樣例:

1 10

輸出樣例:

6

#include<stdio.h>
int wanshu(int x);
int main()
{
  int m,n,j;
  scanf("%d%d",&m,&n);
  int flag=1;
  for(j=m;j<=n;j++)
  {
	     if(wanshu(j))
		 {
			 if(flag)
			 flag=0;
			 else
			printf(" ");
			 printf("%d",j);
		 }

	  
  }
  if(flag)
  printf("NIL\n");
  return 0;
}
int wanshu (int x)
{
	int i,sum=0;
	int ret=0;
	for(i=1;i<x;i++)
	{
		if(x%i==0)
			sum+=i;
	}
	if(sum==x)
	  ret=1;
	return ret ;
}

以空格分隔 第一個最後一個數後無空格
int flag=1;
  for(j=m;j<=n;j++)
  {
	     if(wanshu(j))
		 {
			 if(flag)
			 flag=0;
			 else
			printf(" ");
			 printf("%d",j);
		 }

開始 定義flag為1  

當得出有一個滿足完數條件後

改變falg的值 每次輸出數字前 輸出一個空格

憑藉這樣達到數字分隔並且最後一個數字後無空格。