4 条题解

  • 1
    @ 2025-1-21 16:49:40

    “要使每个人都能拿到苹果”指苹果数量不能为0。

    “每个人拿到的苹果数都不同”指数据不能重复。

    “至少应该有多少个”指要使求得的值最小。

    既要数据不能重复,还要使答案最小,又不能从0开始。

    那就从1开始枚举到 n 即为答案。

    CODE 1: #include<bits/stdc++.h> using namespace std; int main(){ int a,b; b=0; cin>>a; for(int i=1;i<=a;i++) { b=b+i; } cout<<b; }

    但是,此题可以进一步优化。

    因为本题是从1枚举到 n ,每一个数间隔是1,又知道了共有 n 个数。

    所以,这道题可以用等差数列求和的公式: CODE 2:

    #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; cout<<n*(n+1)/2;//直接套公式

    return 0;
    

    } END.

    • 1
      @ 2025-1-20 18:35:25
      #include<bits/stdc++.h>
      using namespace std;
      int geshu[1002];//存储每个人拿到的数量
      int main(){
      	int N;
      	cin >> N;
      	for (int i = 1;i <= 1001;i++){
      		geshu[i] = i;//"最低标准"存入geshu数组
      	}
      	int sum = 0;
      	for (int i = 1;i <= N;i++){
      		sum+=geshu[i];//前N个累加至sum中
      	}
      	cout << sum;//输出sum
      	return 0;
      }
      

      说实话,作者自己刚开始就是这么做的,不过后来发现:两个for可以合并。

      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	int N;
      	cin >> N;
      	int sum = 0;
      	for (int i = 1;i <= N;i++){
      		sum+=i;//累加
      	}
      	cout << sum;
      	return 0;
      }
      

      实际上,这题最快的做法是用数学解决:

      #include<bits/stdc++.h>
      using namespace std;
      int main(){
      	int N;
      	cin >> N;
      	cout << (1 + N) * N / 2;//等差数列求和公式
      	return 0;
      }
      
      • 0
        @ 2025-4-20 19:19:39
        #include<bits/stdc++.h>
        using namespace std;
        int main() {
            int n,sum=0;
            cin>>n;
            for(int i=1;i<=n;i++){
            	sum+=i;
        	}
        	cout<<sum;
            return 0;
        }
        
        • 0
          @ 2025-2-3 20:45:45
          #include<bits/stdc++.h>
          using namespace std;
          int main(){
          	int i=1,n,s=0;
          	cin>>n;
          	while(i<=n){
          		s=s+i;
          		i++;
          	} cout<<s;
          	return 0;
          }
          
          • 1

          信息

          ID
          72
          时间
          1000ms
          内存
          128MiB
          难度
          1
          标签
          (无)
          递交数
          57
          已通过
          41
          上传者