1 条题解

  • 0
    @ 2025-4-7 21:41:50

    C :

    #include<stdio.h>
    #include<math.h>
    
    int a[1000001];
    
    int main()
    {
    	int n;
    	double i,x,y,z;
    	a[0]=1;
    	for(i=1;i<=1000000;i++)
    	{
    		x=i-sqrt(i);
    		y=log(i);
    		z=i*sin(i)*sin(i);
    		a[(int)i]=(a[(int)x]+a[(int)y]+a[(int)z])%1000000;
    	}
    	while(scanf("%d",&n)!=EOF,n!=-1)
    		printf("%d\n",a[n]);
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<math.h>
    
    int a[1000001];
    
    int main()
    {
    	int n;
    	double i,x,y,z;
    	a[0]=1;
    	for(i=1;i<=1000000;i++)
    	{
    		x=i-sqrt(i);
    		y=log(i);
    		z=i*sin(i)*sin(i);
    		a[(int)i]=(a[(int)x]+a[(int)y]+a[(int)z])%1000000;
    	}
    	while(scanf("%d",&n)!=EOF,n!=-1)
    		printf("%d\n",a[n]);
    	return 0;
    }
    

    Java :

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while(in.hasNextInt()) {
                int N = in.nextInt();
                if(N == -1)
                break;
                int[] x = new int[N+1];
                x[0] = 1;
                double a1,b1,c1;
                int a2,b2,c2;
                for(int i = 1;i<=N;i++) {
                    a1 = Math.sqrt(i);
                    b1 = Math.log(i);
                    c1 = Math.pow(Math.sin(i),2);
                    a2 = (int)Math.floor(i-a1);
                    b2 = (int)Math.floor(b1);
                    c2 = (int)Math.floor(i * c1);
                    x[i] = (x[a2] + x[b2] + x[c2]) % 1000000;
                }
                System.out.println(x[N]);
            }
        }
    }
    
    • 1

    信息

    ID
    1990
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者