赞
踩
- #include<bits/stdc++.h>
- using namespace std;
- int a,b;
-
- int main(){
- scanf("%d%d",&a,&b);
-
- printf("%d",a*b);
- return 0;
- }
- #include<bits/stdc++.h>
- using namespace std;
- int a,b,c;
-
- int main(){
- scanf("%d%d%d",&a,&b,&c);
- if(a==b&&b==c) printf("Equilateral glass");
- else if(a==b || b==c || c==a) printf("Isosceles glass");
- else if(a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a) printf("Right angle glass");
- else printf("None");
- return 0;
-
- }
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- int a[1010][1010];
- int main(){
- scanf("%d",&n);
- vector<int> res;
- for(int i=1;i<=n;i++){
- char flag;
- int x,y,k;
- cin>>flag;
- if(flag=='M'){
- scanf("%d%d%d",&x,&y,&k);
- a[x][y]=k;
- }
- else if(flag=='N')
- {
- scanf("%d%d",&x,&y);
- res.push_back(a[x][y]);
- }
-
-
- }
- for(int i : res){
- printf("%d\n",i);
- }
-
- return 0;
- }
计算在一个 n×m 的矩形中可以放置的所有可能的正方形的数量,除了逐个遍历每个可能的正方形边长的解法外,还可以通过数学公式进行推导和简化。下面是一些其他可能的解法:
- #include<bits/stdc++.h>
- using namespace std;
- int n,m;
- int main(){
- scanf("%d%d",&n,&m);
- int min_side=min(n,m);
- int ans=0;
- for(int k=1;k<=min_side;k++){
- ans+=(n-k+1)*(m-k+1);
- }
- printf("%d",ans);
- return 0;
- }
- int total_squares = 0;
- for (int i = 1; i <= n; ++i) {
- for (int j = 1; j <= m; ++j) {
- int max_square_size = min(n - i + 1, m - j + 1);
- total_squares += max_square_size;
- }
- }
- vector<vector<int>> dp(n, vector<int>(m, 0));
- int total_squares = 0;
-
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < m; ++j) {
- if (grid[i][j] == 1) {
- if (i == 0 || j == 0) {
- dp[i][j] = 1;
- } else {
- dp[i][j] = 1 + min({dp[i-1][j], dp[i][j-1], dp[i-1][j-1]});
- }
- total_squares += dp[i][j];
- }
- }
- }
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- string str;
- int main(){
- cin>>n;
- cin>>str;
- for(int i=1;i<=n;i++){
- char ch;
- string str_1;
- cin>>ch;
-
- if(ch=='F') {
- cin>>str_1;
- str=str_1+str;
- }
- else if(ch=='B'){
- cin>>str_1;
- str=str+str_1;
-
- }
- else if(ch=='R'){
- reverse(str.begin(),str.end());
-
- }
-
-
- }
-
- cout<<str;
- return 0;
- }
【题目描述】
花果山上有一只猴子,每天都去蟠桃园摘桃子。第一天,猴子只摘了一个桃子:之后两天(第二天和第三天),最子每天都摘两个桃子,之后三天(第四、五、六天),猴子每天都摘三个桃子,之后四天(第七、八、九、十天),猴子每天都四个桃子.…这种模式会一直持续下去,因为蟠桃园里的桃子无穷无尽,请计算在前n天里,猴子一共摘了多少个挑子。
【输入描述】
输入只有一厅,一个正整数n,表示前n天.
【输出描述】
钟出只有一行,一个正整数,表示前n天猴子一共摘了多少个桃子。
【输入】
6
【输出】
14
【提示】
保证1<=n<= 1000.
解析:
1:第一天:1(1*1)
2:第二天,第三天:2,2(2*2)
3:第四天,第五天,第六天:3,3,3(3*3)
……
x:……第n天:x,x,x……(x*x)
例如输入6(表示6天)
1:第一天:1(1*1)
2:第二天,第三天:2,2(2*2)
3:第四天,第五天,第六天:3,3,3(3*3)
1+2+3=6天;
1*1+2*2+3*3=14个桃;
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- long long sum=0;
- int main(){
- scanf("%d",&n);
- for(int i=1,j=1;i<=n;i+=j){
- sum+=j*j;
- j++;
- }
- printf("%lld",sum);
- }
你可以用一个变量来跟踪当前的天数,一个变量来跟踪当前的周期长度,以及一个变量来计算总共摘了多少个桃子。
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- long long sum=0;
- int main(){
- scanf("%d",&n);
- int L=1; //表示跟踪当前的周期长度
- for(int d=1;d<=n;d++){//d表示天数
- for(int i=1;i<=L;i++){
- sum+=L;
- d++;
- }
- L++;
-
- }
- printf("%lld",sum);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。