4 条题解

  • 1
    @ 2023-10-23 20:15:37

    全都让开!!!!!

    本题第一个Ac题解:

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        for (int i = 1; i <= 100000; i++) {//枚举我家的门牌号数
    //i不知道多少,可以开100000
            int sum = 0;
            for (int j = 1;; j++) {
            	if(j != i)
            	{
            		sum += j;//累积其他门牌总数
    			}
                if (sum - i * 2 == n && i<=j) {//判断,我家的门牌号不可能超过最大门牌
                    cout << i << " " << j << endl;
                    break;
                }
                if (sum - i * 2 > n) break; //提前退出
            }
        }
        return 0;
    }
    

    (感谢曾致远提供的0分代码模版和思路)

    • 0
      @ 2024-10-13 17:44:49
      #include <iostream>
      using namespace std;
      int main() {
          int n;
          cin >> n;
          for (int i = 1; i <= 100000; i++) {
              int sum = 0;
              for (int j = 1;; j++) {
              	if(j != i)
              	{
              		sum += j;
      			}
                  if (sum - i * 2 == n && i<=j) {
                      cout << i << " " << j << endl;
                      break;
                  }
                  if (sum - i * 2 > n) break; 
              }
          }
          return 0;
      }
      
      
      
      
      
      
      
      
      
      
      `
      
      • 0
        @ 2023-2-13 18:00:00

        这道题的说明有点问题,

        若其余各家的门牌号之和减去我家门牌号的两倍

        这里应该改为

        若所有的门牌号之和减去我家门牌号的两倍

        然后,存粹的暴力枚举题,没什么好说的......

        #include<iostream>
        using namespace std;
        int main(){
        	int n;
        	cin >> n;
        	int sum=0;
        	for(int i=1;i<=n;i++){
        		sum+=i;
        		if(sum>n){
        			if((sum-n)%2==0&&(sum-n)/2<=i){
        				cout << (sum-n)/2 << " " << i;
        				return 0;
        			}
        		}
        	}
        	return 0;
        }
        
      • -2
        @ 2023-10-22 10:51:36

        我家住在一条短胡同里,这条胡同的门牌号从\red{1}1开始顺序编号。

        若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于\red{n}n,求我家的门牌号及总共有多少家。数据不保证有唯一解。

        输入格式

        一个正整数\red{n}n。\red{n<100000}n<100000

        输出格式

        一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。

        若有多个,每一组答案换一行

        AC

        #include <iostream>
        using namespace std;
        
        int main() {
            int n;
            cin >> n;
            for (int i = 1; i <= n; i++) {
                int sum = 0;
                for (int j = i + 1; ; j++) {
                    sum += j;
                    if (sum - i * 2 == n) {
                        cout << i << " " << j << endl;
                        break;
                    }
                    if (sum - i * 2 > n) break;
                }
            }
            return 0;
        }
        
        
        • 1

        信息

        ID
        962
        时间
        1000ms
        内存
        128MiB
        难度
        8
        标签
        递交数
        421
        已通过
        59
        上传者