标签:img return ret const com 答案 upload == cto
坤坤给你一个边长为n的等边三角形图形,请你查出图形内等边三角形的个数。
因为数据过大,所以要求答案对1e9+7取模。
如图是n=2的三角形阵列。我们可以看出有5个三角形。
请输出n为20210411时的三角形的个数。
无输入
直接输出
请直接打印答案即可。
思路:
代码:
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 typedef long long ll; 8 9 10 const int mod=1e9+7; 11 12 int main(){ 13 ll ans=0,n=20210411; 14 for(int i=1;i<=20210411;i++){ 15 ll cur=((n-i+2)*(n-i+1)/2)%mod; 16 if(n-i*2+1>0) cur=(cur+(n-i*2+2)*(n-i*2+1)/2)%mod; 17 ans=(ans+cur)%mod; 18 } 19 cout<<ans<<endl; 20 return 0; 21 }
思路2:
java实现
1 public class Main { 2 public static void main(String[] args) { 3 // int n=20210411,mod=1000000007; 4 // long arr[]=new long[n+1]; 5 // long ji[]=new long[n+1]; 6 // long ou[]=new long[n+1]; 7 // ji[1]=1; 8 // for(int i=2;i<=n;i++){ 9 // if(i%2==0){ 10 // ou[i]=ou[i-2]+i; 11 // }else{ 12 // ji[i]=ji[i-2]+i; 13 // } 14 // ji[i]%=mod; 15 // ou[i]%=mod; 16 // } 17 // for(int i=1;i<=n;i++){ 18 // arr[i]=arr[i-1]; 19 // arr[i]+=((1+i)*(long)i)/2; 20 // arr[i]+=(i-1)%2==0?ou[i-1]:ji[i-1]; 21 // arr[i]%=mod; 22 // } 23 // System.out.println(arr[n]); 24 System.out.println("683228996"); 25 } 26 }
标签:img return ret const com 答案 upload == cto
原文地址:https://www.cnblogs.com/leoaioliabao/p/14649458.html