指针算法,妙!
飞燕的想法太精妙了,晚生佩服! ----------------解决方案--------------------------------------------------------
燕子算法很不错...有点看到灯塔那个题目得味道.....呵呵,如果超出long int的范围,就还要回归到最基本的加法做了
[[it] 本帖最后由 sunkaidong 于 2008-5-5 12:15 编辑 [/it]]
----------------解决方案--------------------------------------------------------
我觉得不怎么样,如果考虑到机器的实现,不一定快于原版
你们继续,算法是不错的,呵呵。。
[[it] 本帖最后由 c_acceleration 于 2008-5-5 12:26 编辑 [/it]]
----------------解决方案--------------------------------------------------------
燕子我封装你的代码..纯粹是觉得好玩...呵呵
#include <cstdio>#ifndef PLUS_CLASS
#define PLUS_CLASS
class plus
{
public:
static void init();
void pt(int n);
private:
static long p;
static long s;
};
long plus::p=0;
long plus::s=0;
void plus::init()
{
for (int j=1;j<=9;j++)
{
s=s*10+1;
p+=s;
}
}
void plus::pt(int n)
{
char* str="1+11+111+1111+11111+...+111111111=";
for(; *str; ++str)
{
if(*str=='1')putchar(n+'0');
else putchar(*str);
}
printf("%ld\n",p*n);
}
#endif
int main()
{
plus p;
plus::init();
for(int i=1;i<=9;++i)
{
p.pt(i);
}
return 0;
}
[[it] 本帖最后由 sunkaidong 于 2008-5-5 13:35 编辑 [/it]]
----------------解决方案--------------------------------------------------------