[英]Write a while loop that prints all positive numbers that are divisible by 10 and less than a given number n
[英]How would I write a function in Java that prints out perfect numbers less than n?
我試圖在處理中編寫一個函數,以打印出我的作業pset小於n的所有完美數字。 但是,我很難找到與該問題匹配的算法。
我寫了一個for循環,循環遍歷1到n之間的所有數字。 由於所有除數的和等於完美數,因此我進行了if語句,檢查n的余數,然后將它們加到求和變量中,稱為“結果”。 然后,在此循環結束時,如果結果等於n,則將其打印出來。
void perfect(int n) {
int result = 0;
for(int i = 1; i < n; i++) {
if(n % i == 0) {
result = result + i;
}
}
if( result == n) {
println(n);
}
}
目前,我的代碼沒有輸出任何內容。 當我將if語句移到最后時,它打印出了所有n值,但不是理想數字。 我相信我的代碼中某處正在出錯,所以n永遠不會等於“結果”。
您將必須使用嵌套的for循環來獲取從1到n的所有理想數。 如下:
int i, sum = 1;
System.out.print("Perfect nos from 1 to n are 1,");
for (int j = 2; j <= n; j++)
{
sum = 1;
for (i = 2; i < j; i++)
{
if (j % i == 0)
sum = sum + i;
}
if (j == sum)
System.out.print(j + ",");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.