Chinaunix首页 | 论坛 | 博客
  • 博客访问: 230458
  • 博文数量: 65
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 655
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-31 13:33
文章分类

全部博文(65)

文章存档

2016年(1)

2010年(4)

2009年(4)

2008年(4)

2007年(40)

2006年(12)

我的朋友

分类: C/C++

2006-06-15 19:44:11

  一个钻石数是这样的一个数,其各位数上的立方和相加和该数相等,例如:153=1^3+5^3+3^3。

   那么怎样判断一个数是不是钻石数呢?下面是我给出的一个实现:
//file:isDiamondNumber.c
//author:filcon
//version 0.1 released on 2006/06/15
//Licensed under GPL terms

#include

int isDiamondNumber(long num)
{//判断一个整数是否是钻石数

    int  m=1;//10的次方
    int  index=0;      //某位上的数值,比如说153的百位为1
    long sum=0;        //以153为例:sum=1^3+5^3+3^3
    long tmpInt=num;   //临时整数
    int  i=1;

    while( num > pow( 10, m ) ) m++;//判断num是10的几次方


    for(i = 1; i <= m; i++)
    {//求sum
      index = tmpInt / ( long )pow( 10, m-i );
      sum = sum + ( long )pow( index, 3 ) ;
      tmpInt = tmpInt - index *  ( long )pow( 10, m-i );
    }

    if ( sum == num)
        return 1;
    else
        return 0;
}
阅读(1494) | 评论(0) | 转发(0) |
0

上一篇:PHP网络资源概览

下一篇:ConsoleClock

给主人留下些什么吧!~~