以下是引用beyondyf在2012-12-6 10:45:17的发言:
那我也写一段和万哥交流吧。输出比较多,建议输出到文件再查看。
这段代码稍加改动即可完成原来那个朋友要做的题目。
#include
#define MAX_N 500
#define MAX_LEN 128
int main()
{
char f[MAX_N][MAX_LEN] = {"1","1"};
int a[MAX_LEN] = {1}, b[MAX_LEN] = {1}, c[MAX_LEN] = {};
int *p = c, *p1 = b, *p2 = a, *pt;
int i, j, t;
for(i = 2; i < MAX_N; pt = p2, p2 = p1, p1 = p, p = pt, i++)
{
for(t = j = 0; j < MAX_LEN; t = p[j] > 9 ? p[j] -= 10, 1 : 0, j++) p[j] = p1[j] + p2[j] + t;
for(j--; !p[j]; j--);
for(t = 0; j >= 0; f[t++] = p[j--] + '0');
}
for(i = 0; i < MAX_N; printf("F[%03d] = %s\n", i, f));
return 0;
}
太精炼了 晚上回去研究那我也写一段和万哥交流吧。输出比较多,建议输出到文件再查看。
这段代码稍加改动即可完成原来那个朋友要做的题目。
#include
#define MAX_N 500
#define MAX_LEN 128
int main()
{
char f[MAX_N][MAX_LEN] = {"1","1"};
int a[MAX_LEN] = {1}, b[MAX_LEN] = {1}, c[MAX_LEN] = {};
int *p = c, *p1 = b, *p2 = a, *pt;
int i, j, t;
for(i = 2; i < MAX_N; pt = p2, p2 = p1, p1 = p, p = pt, i++)
{
for(t = j = 0; j < MAX_LEN; t = p[j] > 9 ? p[j] -= 10, 1 : 0, j++) p[j] = p1[j] + p2[j] + t;
for(j--; !p[j]; j--);
for(t = 0; j >= 0; f[t++] = p[j--] + '0');
}
for(i = 0; i < MAX_N; printf("F[%03d] = %s\n", i, f));
return 0;
}
另:我发现杨兄弟的代码有个特点 那就是本来应该是循环体内部的东东,你都放到for后面的括号里
问一下,这么做 除了代码精炼之外 还有其他好处吗
DO IT YOURSELF !