#include<iostream> using namespace std; int main() { long long n,k,T; while(cin>>n>>k>>T) { long long sum=0,num1=1,num=0,t; num=(1+n)*n/2; while(t<T) { sum+=num1; num1=(num1+num+n*n*t)%k; t++; } cout<<sum<<endl; } return 0; }
这题写了很久 按常规写法 会超时 所以要找到简便的方法找出每一次栋栋数到的数 使复杂度保持在n 这题有个易错点就是如何变量n不使用long long类型的话 答案就是不正确 原因是int 型变量和int型变量相乘时 所得数的范围为int 类型。会导致数据丢失
0.0分
1 人评分
#include<stdio.h> int main() { int n,k,T,i,j; int t; long long sum=0; scanf("%d%d%d",&n,&k,&T); long long int a[n*T+1]; a[0]=1; for(i=1;i<n*T+1;i++) { a[i]=a[i-1]+i; if(a[i]>k-1) a[i]=a[i]%(k-1)-1; } for(i=0,t=0;t<3;i+=n,t++) sum+=a[i]; printf("%lld",sum); return 0; } 提示编译错误能不能给个思路
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:539 |
C语言考试练习题_保留字母 (C语言代码)浏览:562 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:616 |
简单的a+b (C语言代码)浏览:722 |
震宇大神的杀毒软件 (C++代码)浏览:1115 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:508 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:603 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:595 |
【出圈】 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:820 |
hacknet 2020-03-05 19:12:22 |
c++里面数组大小好像不允有变量 a[n*T+1]