c语言排序问题上的问题

职友集:一家做公司点评的网站16:06 提问
关于C语言的一个问题,蓝桥杯里面的问题
ibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入包含一个整数n。
输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
数据规模与约定
1 &= n &= 1,000,000。
我提交的程序如下:
#include&stdio.h&
#include&stdlib.h&
#include&conio.h&
#define M 10007
int main()
{long n=-1;
int a1=1,a2=1,sum=0,t,i;
scanf("%ld",&n);
while(n&1||n&1000000);
for(i=1;i&=n;i++)
a2=(a1+a2)%M;
printf("%d\n",sum);
但是不通过,请问问题出在哪里?
按赞数排序
修改了一下,试试:
#include&stdio.h&
#include&stdlib.h&
#include&conio.h&
#define M 10007
int main()
long n=-1,i;//i也应该是long int
int a1=1,a2=1,sum=0,t;
scanf("%ld",&n);
}while(n&1||n&1000000);
for(i=3;i&=n;i++)//修改
a2=(a1+a2)%M;
sum=a2%M;//修改
printf("%d\n",sum);
样例通过没?还有提示什么错误?
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐c语言有问题,不知道上哪里问_百度知道
c语言有问题,不知道上哪里问
有点小失落,有问题困扰理我3天,我去c语言贴吧,3级以下删帖,问百度知道,都随便回答,无奈去淘宝走了走,什么在线咨询什么的都必须得是考试,直接把我无视掉,真的 ,求一个能问问题的地方,求求你们了 ,这么大的世界,c语言初级问题,没人吸的嘞你,但是...
我有更好的答案
你可以找个一起学的小伙伴,或则找个大牛带你,比如说我哈哈,其实我也不是大牛,不过我应该能帮到你qq
问题,不知道能不能帮上忙
请问是什么问题,如果我会的话,我帮您解决
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
c语言中常出现问题详解解析.doc 8页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
c语言中常出现问题详解解析
你可能关注的文档:
··········
··········
C语言中.h的意思与用途
作为一般规则, 你应该把这些东西放入头(.h)文件中: 2 宏定义(预处理#defines) 2 结构、联合和枚举声明 2 typedef声明 2 外部函数声明(参见问题1.4) 2 全局变量声明 当声明或定义需要在多个文件中共享时, 尤其需要把它们放入头文件中。特 别是, 永远不要把外部函数原型放到.c 文件中。参见问题1.3。 另一方面, 如果定义或声明为一个.c 文件私有, 则最好留在.c 文件中。 参见问题1.3和10.5。 参考资料: [K&R2, Sec. 4.5 pp. 81-2]; [H&S, Sec. 9.2.3 p. 267]; [CT&P, Sec.
一个头文件可以包含另一头文件吗? 这是个风格问题, 因此有不少的争论。很多人认为“嵌套包含文件”应该避免: 盛名远播的“印第安山风格指南”(Indian Hill Style Guide,参见问题17.7)对此嗤 之以鼻; 它让相关定义更难找到; 如果一个文件被包含了两次, 它会导致重复定义 错误; 同时他会令makefile的人工维护十分困难。另一方面, 它使模块化使用头文 件成为一种可能(一个头文件可以包含它所需要的一切, 而不是让每个源文件都包 含需要的头文件);类似grep的工具(或tags文件)使搜索定义十分容易, 无论它在 哪里; 一种流行的头文件定义技巧是: #ifndef HFILENAME_USED #define HFILENAME_USED ... 头文件内容... #endif 每一个头文件都使用了一个独一无二的宏名。这令头文件可自我识别,以便 可以安全的多次包含; 而自动Makefile维护工具(无论如何, 在大型项目中都是必 不可少的)可以很容易的处理嵌套包含文件的依赖问题。参见问题17.8
我如何用#if表达式来判断机器是高字节在前还是低字节在前? 恐怕你不能。(预处理运算仅仅使用长整型, 而且没有寻址的概念。)你是否 真的需要明确知道机器的字节顺序呢?通常写出与字节顺序无关的代码更好。 为什么声明extern int f(struct x *p); 报出了一个奇怪的警告信 息“结构x在参数列表中声明”? 与C语言通常的作用范围规则大相径庭的是, 在原型中第一次声明(甚至提 到)的结构不能和同一源文件中的其它结构兼容, 它在原型的结束出就超出了作用 范围。 要解决这个问题, 在同一源文件的原型之前放上这样的声明:
它在文件范围内提供了一个不完整的结构x的声明, 这样, 后续的用到结构x 的声明至少能够确定它们引用的是同一个结构x。 11.23 a[3] ="abc"; 合法吗?它是什么意思? 尽管只在极其有限的环境下有用, 可它在ANSI C (可能也包括一些ANSI之 前的系统)中是合法的。它声明了一个长度为3的数组, 把它的三个字符初始化为 ’a’, ’b’ 和’c’, 但却没有通常的’\0’字符。因此该数组并不是一个真正的C字符 串从而不能用在strcpy, printf %s等当中。 多数时候, 你应该让编译器计算数组初始化的初始值个数, 在初始值“abc”中, 计算得长度当然应该是4。 参考资料: [ISO, Sec. 6.5.7
为什么这些代码 scanf("%f", &d); 不行? 跟printf()不同, scanf() 用%lf代表双精度数, 用%f代表浮点数。
怎样在scanf()格式串中指定可变的宽度? 不能: scanf() 格式串中的星号表示禁止赋值。你可以使用ANSI的字符串化 和字符连接完成同样的事情, 或者你可以在运行时创建scanf格式串。 12.15 当我用“%d\n”调用scanf从键盘读取数字的时候, 好像要多输 入一行函数才返回。 可能令人吃惊, nn在scanf格式串中不表示等待换行符, 而是读取并放弃所有 的空白字符。参见问题12.18。 参考资料: [K&R2, Sec. B1.3 pp.
我用scanf %d读取一个数字, 然后再用gets()读取字符串, 但是 编译器好像跳过了gets()调用! scanf %d不处理结尾的换行符。如果输入的数字后边紧接着一个换行符, 则 换行符会被gets()处理。 作为一个一般规则, 你不能混用scanf()和gets(),或任何其它的输入例程的调 用; scanf对换行符的特殊处理几乎一定会带来问题。要么就用scanf()处理所有的 输入, 要么干脆不用。
数组和下标在C语言中可以互换。这个奇怪的事实来自数 组下标的指针定义, 即对于任何两个表达式a和e,只要其中一个是指针表达式而 另一个为整数, 则a[e]和*((a)+(e))完全一样。这种交换性在许多C语言的书中 被
正在加载中,请稍后...487 条评论分享收藏感谢收起赞同 2添加评论分享收藏感谢收起

我要回帖

更多关于 c语言---"亲密数"问题 的文章

 

随机推荐