c语言程序,时间超限,怎么解决
将scanf输入换成从文件读取数据,使用fopen, fread, fwrite之类的函数,不要从终端上直接输入。或者使用重定向从文件读取数据。
如果效率还是不行,再将printf改成输出到文件中。
【C语言新手问题】这个程序超时怎么办
你好,你要优化时间效率。这里可以考虑在计算和的平方之前,对于根本不符合的直接排除。
1.首先,对于数x,它的平方根不可能超过sqrt(x);所以当你计算出两部分和的时候,先检查这个条件是否满足,不满足则continue下一轮循环
2.一个数x平方的个位数跟x的个位数存在一定关系。
x个位数 x^2个位数
1或9 1
2或8 4
3或7 9
4或6 6
5 5
0 0
因此在计算两部分和的时候如果1条件满足,那么检测条件2。
根据上面两个条件,应该可以提高一定的效率。
3.应用多线程,这样同时可以处理几个数据,不过你的算法就要修改一下了。
超时消息处理 C语言
前段时间有个需求是向S端发送消息,如果在20S之内没有收到S端的回执,就要对发送的消息进行超时处理。在一个线程中去处理超时消息,创建一个单链表,在发送消息的同时,将该消息体加到链表中,在线程中一直对这个链表进行遍历,查看时间是否大于等于20,如果大于等于20,就告诉用户消息超时,接着从链表中删除该消息,或者这个数据的标志位为1,也从链表中删除该消息。如果过了20S收到消息回执,则将该消息的的标志位置为1。