1.Fibonacci数列(数列 取模)
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
公式:(a+b)%n=((a%n)+(b%n))%n
c++代码
#include<iostream> using namespace std; #define max 1000000 int main() { int n,a[max]; while(cin>>n) { a[1]=1; a[2]=1; for(int i=3; i<=n; i++) { a[i]=(a[i-1]+a[i-2])%10007; } cout<<a[n]<<endl; } return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { final int MAX=1000000; int a[]=new int[MAX]; Scanner input = new Scanner(System.in); int n=input.nextInt(); a[1]=1; a[2]=1; for(int i=3; i<=n; i++) { a[i]=(a[i-1]+a[i-2])%10007; } System.out.println(a[n]); } }
2.圆的面积(实数输出)
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
c语言
#include<stdio.h> #define PI 3.14159265358979323 int main() { int r; scanf("%d",&r); double s=0.0; s=r*r*PI; printf("%.7f\n",s); return 0; }
java
import java.util.*; public class Main { public static void main(String[] args) { final double PI=3.14159265358979323; Scanner input=new Scanner(System.in); int r=input.nextInt(); double s=r*r*PI; String ps=String.format("%.7f", s);//java 保留小数点后几位 System.out.println(ps); } }
序列求和( 求和公式)
说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。
一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。
说明:请注意这里的数据规模。
本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。此时你需要想想其他方法。你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。
本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误。
如果你使用C++或C语言而且准备使用printf输出结果,则你的格式字符串应该写成%I64d以输出long long类型的整数。
c语言
#include<stdio.h> int main() { long long n,i,s=0; scanf("%I64d",&n); s=(1+n)*n/2; printf("%I64d\n",s);//使用64位整型(C++:long long, C:long long, Java:long)来保存结果和进行中间运算。 return 0; }
import java.util.*; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); long n=input.nextLong(); long s=(1+n)*n/2; System.out.println(s); } }