求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。 编写程序

是Pascal的哦... 是Pascal的哦 展开
gujifly
2010-10-16 · 超过35用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:70.7万
展开全部

/*

*“水仙花数”算法

*

*作者:gujifly

*

*时间:2010-10-16

*/

#include "stdafx.h"

#include "stdio.h"

#include "time.h"

int count(int values,int times){ //计算单个值的"水仙花"计算结果

 int results=0;

 int i=1;

 while (values/i>0)

 {

  int tmpp=1;

  int tmp=values%(i*10)/i;

  for(int j=0;j<times;j++)

  {

   tmpp*=tmp;

  }

  results+=tmpp;

  i*=10;

 }

 return results;

}

void counts(int numbers){ //根据给定的位数,调用count计算并输出整个级别的"水仙花"数

 int resultAll=1;

 for (int j=0;j<numbers;j++)

  resultAll*=10;

 for(int i=resultAll/10;i<resultAll;i++)

 {

  if(i==count(i,numbers))

   printf("水仙数:%d\n",i);

 }

}

int main(int argc, char* argv[]) //main 函数

{

 while (1)

 {

  int x=0;

  printf("\n请输入要计算的水仙花位数:\n");

  scanf("%d",&x);

  clock_t start, finish;

  double duration;

  start = clock();

  counts(x);

  finish = clock();

  duration = (double)(finish-start);

  printf("计算所用时间:%f秒\n",duration/1000);

 }

 

 return 0;

}

参考资料: 自写

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式