1. 用VB編寫:找出所有的「水仙花數」。 「水仙花數」是指一個三位數,其各位數字的立方和等於該數本身
代碼為:
using System;
using System.Collections.Generic;
using System.Text;
namespace _
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("一重循環判斷:");
Console.WriteLine("水仙花數有:");
int i,j, k, l;
for (i = 100; i < 1000;i++)
{
j = i / 100;
k = i %100/10;
l = i % 10;
int n = j * j * j + k * k * k + l * l * l;
if (n == i)
Console.WriteLine(n);
}
Console.WriteLine("三重循環判斷:");
Console.WriteLine("水仙花數有:");
int q, w, e, r;
for(q=1;q<=9;q++)
for(w=0;w<=9;w++)
for (e = 0; e <= 9; e++)
{
int s = q * 100 + w * 10 + e;
int t = q * q * q + w * w * w + e * e * e;
if (s == t)
Console.WriteLine(s);
}
}
}
}
注意事項
自定義函數is(number)判斷number的各位數字立方和是否等於它本身,如is(121)返回值0,is(153)返回值1。 主函數輸入兩個正整數m和n(m>=1, n<=1000),輸出m-n之間的所有滿足各位數字和等於它本身的數。
Input
多組測試數據,每組輸入兩個正整數m和n(m>=1, n<=1000)。
Output
輸出m-n之間的所有滿足各位數字立方和等於它本身的數,空格隔開(最後一個數後無空格)。
Sample Input
1 100
50 200
50 500
Sample Output
1
153
153 370 371 407
#include<stdio.h>
#include<math.h>
int is(int number)
{
int s,sum=0;
while(number!=0)
{
s=number%10;//不斷取余,直至為0
sum+=pow(s,3);
number=number//10;不斷去尾,直至為0
}
return sum;
}
int main(void)
{
int m,n,k,flag;
while(scanf("%d%d",&m,&n)!=EOF)
{
flag=1;
for(k=m;k<=n;k++)
{
if(k==is(k))
{
if(flag!=0)
{
printf("%d",k);
flag=0;
}
else
printf(" %d",k);
}
}
printf(" ");
}
return 0;
}