技巧1 以空格分隔 第一個最後一個數後無空格
阿新 • • 發佈:2019-02-07
題目內容:
一個正整數的因子是所有可以整除它的正整數。而一個數如果恰好等於除它本身外的因子之和,這個數就稱為完數。例如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的值 每次輸出數字前 輸出一個空格
憑藉這樣達到數字分隔並且最後一個數字後無空格。