xbtianlang
发表于 2011-7-14 11:57:57
#include
#define a printf("%d ",i++);
#define b(x) x x x x x
#define Print1000 b(b(b(a a a a a a a a))) //1000=5*5*5*8
//#define b(x) x x x x x x x x x x
//#define Print1000 b(b(b(a)) ...
G-Spider 发表于 2011-7-14 11:00 http://bbs.emath.ac.cn/images/common/back.gif
#define Print1000 b(b(b(b(a) a a a))) //1000=5*5*5*(5+3)
没试过,能不能这样改?
shshsh_0510
发表于 2011-7-20 06:43:48
就是不让好好说话呗,我也凑凑热闹
不过我这个不太简洁,估计得费番力气才能少于30行.
由于较复杂,我只打到20
#include <stdio.h>
#include<gmp.h>
#pragma comment( lib, "libgmp-510.lib" )
void main()
{
mpz_t a,b,c,d,e;
mpz_init(a); mpz_init(b); mpz_init(c); mpz_init(d); mpz_init(e);
mpz_set_str(a,"392020382020372020362020352020342020332020322020312020302020",16);
mpz_set_str(b,"001100001100001100001100001100001100001100001100001100001100",16);
mpz_ui_pow_ui(c,16,60);
mpz_add(d,a,b);
mpz_mul(c,c,d);
mpz_add(d,c,a);
char * p =(char *)(*(((int *)d)+2));
*(p+60)=0;
printf("%s\n",p);
getchar();
}
gxqcn
发表于 2011-7-20 08:24:03
啊哈,连大整数都想到了。:)
wayne
发表于 2011-7-20 12:37:33
32# shshsh_0510
额,看不懂啊
G-Spider
发表于 2011-7-20 13:12:19
本帖最后由 G-Spider 于 2011-7-20 14:22 编辑
34# wayne
ascii中,20h对应空格,30h~39h对应0~9 以此为基础做一些运算。#include <stdio.h>
#include "gmp.h"
#pragma comment( lib, "libgmp-3.lib" )
void main()
{
mpz_t a,b,c,d;
mpz_inits(a,b,c,d);
mpz_set_str(a,"392020382020372020362020352020342020332020322020312020302020",16);
mpz_set_str(b,"1000001000001000001000001000001000001000001000001000001",16);
mpz_ui_pow_ui(c,16,60);
mpz_mul_ui(d,b,256*0x11);
mpz_add(d,a,d);
mpz_mul(d,c,d);
mpz_add(d,d,a); //a b c 未变
//*((char *)(d->_mp_d)+60)=0;
printf("\n\n%s\n",d->_mp_d);
getchar();
}
shshsh_0510
发表于 2011-7-20 18:13:45
35# G-Spider
如果哪个超大的数有一个简洁的算式表示就好了
G-Spider
发表于 2011-7-20 18:37:07
36# shshsh_0510 我也在找这样的展开公式,呵呵。
〇〇
发表于 2011-7-20 21:48:29
try catch不算条件吧
hzyg
发表于 2011-8-9 14:46:41
1 #include<stdio.h>
2 int main(int argc)
3 {
4 printf("%d\n",argc);
5 return ( argc==1000 || main(argc+1));
6 }
最直观的
若水
发表于 2011-11-21 11:51:09
int main(int i)
{
return (i<1001 && printf("%5d", i)&& main(i++));
}