Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

關於 C# 這些題目怎麼寫 (作業 剩這幾題寫不出來)?

1. 一個數如果恰好等於它的因數之和,這個數就稱為”完美數”(perfect number)。例如6=1+2+3,因1、2與3都是6的因數。請撰寫一程式,找出1000之內的所有完美數。

2. 請找出1~100000間的所有會符合下面定義的數值。

數值:abcd = a!+b!+c!+d!

3. 利用 do while迴圈,計算1-(1/2)+(1/3)-(1/4)+...+(-)(1/N)的總和,其中n為正的偶數,可由鍵盤自行輸入。若輸入的不是正偶數,則程式會要求使用者再次輸入,直到輸入的數是正偶數為止。

6. 利用While迴圈敘述,輸入一個十進位數值,請將之轉成二進位數值。

7. 設計一程式求三位正整數中,最小的阿姆斯壯數。(三位之範圍為100~999)

說明:所謂阿姆斯壯數,即某一N位數值,其各位數字N次方的總和與該值相等。

(第六題 我只會用while從2轉10 可是10轉2的時候 我不知道該怎辦.....)

已更新項目:

這些 都要用 While 迴圈去寫 ˊˋ

2 個解答

評分
  • 5 年前
    最佳解答

    我只幫解1,總共8題的話你幾乎等於3/4全都扔上來問別人要解答

    學校的東西就算很無趣、就算沒有用,是的寫這種程式根本就用不到,業界用的到的東西學校不會教

    不然至少你也應該先找同學研究看看,或者問問股溝大濕,而不是直接扔網路要免費解答

    public static void Main()

    {

    int n,i,sum;

    int mn,mx;

    Console.Write("\n\n");

    Console.Write("Find perfect numbers within a given number of range:\n");

    Console.Write("------------------------------------------------------");

    Console.Write("\n\n");

    Console.Write("Input the starting range or number : ");

    mn = Convert.ToInt32(Console.ReadLine());

    Console.Write("Input the ending range of number : ");

    mx = Convert.ToInt32(Console.ReadLine());

    Console.Write("The Perfect numbers within the given range : ");

    for(n=mn;n<=mx;n++)

    {

    i=1;

    sum = 0;

    while(i<n)

    {

    if(n%i==0)

    sum=sum+i;

    i++;

    }

    if(sum==n)

    Console.Write("{0} ",n);

    }

    Console.Write("\n");

    }

    }

  • 5 年前

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    namespace ConsoleApplication3

    {

    class Program

    {

    static int[] B = {1,1,2,6,24, 120,720,5040,40320,362880};

    static bool isPerfect(int n){

    int i, j, sum;

    for (i=2,j=n/i,sum=1; i <= j; ++i, j=n/i)

    if (i * j == n) {sum+=i;if (j != i)sum+=j;}

    return sum == n && 1 != n;

    }

    static void Main(string[] args)

    {

    int i, j, k, ii,jj;

    double s;

    Console.WriteLine("1. perfect numbers between 1..1000 are:");

    for (i = 1; i <= 1000; ++i) if (isPerfect(i)) Console.WriteLine("{0}", i);

    Console.WriteLine("\n2. abcd == a!+b!+c!+d!");

    for (i = 1; i < 100000; ++i)

    {

    for (j = i, k = 0; j > 0; j /= 10) k += B[j % 10];

    if (i == k) Console.WriteLine("{0}", i);

    }

    Console.WriteLine("\n3. 1-1/2+1/3-...-1/n = ");

    do {

    Console.WriteLine("\nEnter an even number: ");

    i = Convert.ToInt32(Console.ReadLine());

    } while ((1&i) != 0);

    for(j=i,k=-1,s=0.0; i>=1; --i, k=-k) s += (1.0/i)*k;

    Console.WriteLine("1-1/2+1/3-...-1/n = " + s);

    Console.WriteLine("\n4. Armstrong numbers in [100..999]:");

    for (i = 1; 9 >= i; ++i)

    {

    ii = i * i * i - 100 * i;

    for (j = 0; 9 >= j; ++j)

    {

    jj = ii + j * j * j - 10 * j;

    for (k = 0; 9 >= k; ++k) if (jj + k * k * k - k == 0) Console.WriteLine("{0}{1}{2}",i,j,k);

    }

    }

    Console.ReadLine();

    return;

    }

    }

    }

還有問題?馬上發問,尋求解答。