| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:[求助]用C语言的数据算法编程
只看楼主 加入收藏
雾雨非流云
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-3
收藏
 问题点数:0 回复次数:9 
[求助]用C语言的数据算法编程

Function f( n ) is recursively defined as:

f( n ) = f(n-1) + f(n-3), n > 3
f( n ) = n, n <= 3
Write a program to calculate f( n ) modulo m.

n <= 10000, 2 <= m <= 10000.

Hint

If n is a negative number, use (n % m + m) % m to calculate n modulo m.


Input

There are multiple test cases. Each test case consists of two integers: n and m. n = 0 and m = 0 denotes the end of input, and you should not process this case.

Output

For each test case, print f( n ) modulo m in a single line.

Sample Input

1 2
10000 999
0 0Sample Output

1
433


雾雨 (2007-11-16 10:03:18)
帮我用C语言编 用数据什么的吧

Function f( n ) is recursively defined as:

f( n ) = f(n-1) + f(n-3), n > 3
f( n ) = n, n <= 3
Write a program to calculate f( n ) modulo m.

n <= 10000, 2 <= m <= 10000.

Hint

If n is a negative number, use (n % m + m) % m to calculate n modulo m.


Input

There are multiple test cases. Each test case consists of two integers: n and m. n = 0 and m = 0 denotes the end of input, and you should not process this case.

Output

For each test case, print f( n ) modulo m in a single line.

Sample Input

1 2
10000 999
0 0Sample Output

1
433

搜索更多相关主题的帖子: C语言 算法 数据 
2007-11-16 10:14
雾雨非流云
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-3
收藏
得分:0 
看谁的速度最快 呵呵!
论坛可以让人变得灵活吧
2007-11-16 10:16
雾雨非流云
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-3
收藏
得分:0 
怎么都没人回啊 我哭!
2007-11-17 15:37
symos
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-9-15
收藏
得分:0 

这是什么意思,英语看得头都大了


2007-11-17 17:04
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 

这是哪里的题 给个链接


该学习了。。。
2007-11-17 17:34
雾雨非流云
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-3
收藏
得分:0 

这是我们的作业
大家给我改一下我的
#include <stdio.h>
#include <stdlib.h>

#define SIZE 10000
int main()
{
int i, n, m;
int f[SIZE];
do
{
scanf(" %d %d", &n, &m);
if(n == 0 && m == 0)
{
exit(0);
}

for (i = 1; i <= 3; i++)
{
f[i] = i;
}

for (i = 4; i <= n; i++)
{
f[i] = (f[i-3] % m+ f[i-1] % m) % m;
}
printf("%d\n", f[n]);

if (n < 0)
{
printf("%d\n",(n % m + m) % m);
}
}
while (n != 0 || m != 0);
return 0;
}
不过只有2 %2=2,3%3=3,3%2=3,2%3=2是错的 其他的都对

2007-11-17 18:11
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
for (i = 1; i <= 3; i++)
{
f[i] = i%m;
}

该学习了。。。
2007-11-17 18:42
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
[CODE]

#include <stdio.h>

int main(void)
{
int f[10001], i, n, m;

while (scanf("%d%d", &n, &m) == 2 && !(n == 0 && m == 0))
{
if (n >= 0)
{
for (i = 0;i < 4;i ++)
f[i] = i % m;
for (i = 4;i <= n;i ++)
f[i] = (f[i - 3] + f[i - 1]) % m;
printf("%d\n", f[n]);
}
else
printf("%d\n", (n % m + m) % m);
}

return 0;
}

[/CODE]

该学习了。。。
2007-11-17 19:04
雾雨非流云
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-3
收藏
得分:0 

对了 怎么同时输入多组数据呢

2007-11-17 19:18
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 

输入一组数据 输出结果 然后再输入一组数据这样就行 不必全部输入再打印结果


该学习了。。。
2007-11-17 19:25
快速回复:[求助]用C语言的数据算法编程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017791 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved