57 条题解

  • 94
    @ 2022-4-28 20:05:26

    本题是数学题,x元买单价a的狗和单价b的动物。

    问你一共有几种方案可以把钱花完。

    这样考虑,for循环控制狗的个数,由于猫最少买一个,因此在狗上花的钱最多就是

    (xb)(x-b),那么(xb)/a(x-b)/a就是猫的个数,那么显然最少也是1个,最多就是(xb)/a(x-b)/a个。

    然后for循环开始挨个尝试,假如买了ii只狗以后,剩余的钱是b的倍数,那么这就算一个方案。 从i=1开始挨个尝试到最后,成功的方案ans++ans++,最后输出。

    如果ans还是0,说明没有方案可以实现。

        for(int i=1;i<=(x-b)/a;i++)
        {
            if((x-(i*a))%b==0)
            {
                ans++;
            }
        }
        if-else判断ans的情况输出对应的内容即可
    
    • @ 2023-8-20 10:54:46

      哇!老师也来发题解了,第一次见,好牛!!!学会了👍

    • @ 2023-8-25 20:55:08

      啊对对对@

  • 46
    @ 2022-12-22 21:15:17

    🚀️ 没人发题解?那我来发一个👀️

    #include <iostream>
    using namespace std;
    int main()
    { 
        int n, a, b, x = 0;
        cin >> n >> a >> b;
        for (int i = 1; i <= n / a; i++)
        { 
            if ((n - i * a >= b) && (n - i * a) % b == 0)
            {
          	    x++;
    	    }
        }
        cout << x << endl;
        return 0;
    }//已AC,请放心食用
    

    🚀️

  • 31
    @ 2023-8-3 8:26:34

    枚举

    这道题不难,用枚举就可以,最简单的枚举的虽然可以过,但我还是想优化一下。


    最简单的自然是枚举小狗只数、小猫只数,但我们还可以改进枚举方案,改进后循环(x-b)/a次即可。


    只枚举小狗只数

    • 我们可以枚举小狗只数,之后判断剩余的钱数是否能被小猫只数整数即可。
    • 小狗的循环次数也可以改进,因为至少有一只小猫,所以小狗只数的为1—(x-b)/a。优化完成。

    总结

    1. 定义变量sum为0,输入x、a、b。
    2. 将a从1—(x-b)/a枚举
    3. 判断买完i只小狗剩余的钱数是否能被b整除,如果可以,sum++。
    4. 输出sum。

    AC代码(求赞)

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int x,a,b,sum=0;
        cin>>x>>a>>b;
        for (int i=1;i<=(x-b)/a;i++)
        {//枚举a可能的只数。
            if ((x-i*a)%b==0)
            {    
                sum+=1;
            }//判断买完a后的钱是否能整除b,如果能sum++。
        }
        cout<<sum;//方案数加一。
        return 0;
    }
    
    • 20
      @ 2023-6-15 18:12:03

      这题暴力枚举, 就能完成了! 代码如下👎 (有点儿长):

      #include <iostream>
      using namespace std;
      int main()
      {
          int x, a, b, num = 0; //num是计数变量;
          cin >> x >> a >> b;
          for (int i = 1; i <= x / a; i++)
          // 从1个开始,到能够买狗的最多数量;
          {
              for (int j = 1; j <= x / b; j++)
              { //从1个开始, 到能够买猫的最多数量;
                  if (a * i + b * j == x)
                  {  //买狗的总价 + 买猫的总价 = 有的钱;
                      num++; //方案数加一;
                  }
              }
          }
          cout << num;
          return 0;
      }
      

      C++萌新,有错误请指出!❤️ 欢迎复制,参考,评论!🚀️ 最后,

      一个👍

      谢谢! 最后的最后,寻求大佬们:指针是个啥??

      • @ 2023-8-9 19:07:28

        楼主如果是萌新,那我不是人喽/* _ * 嘤嘤嘤T~T

      • @ 2023-8-9 19:09:39

        100 Accepted

        # 状态分数 耗时 内存占用
        -------------------------------------
        #1 Accepted33 1ms 376 KiB
        -
        #2 Accepted33 1ms 376 KiB
        #3 Accepted34

        好好用啊

      • @ 2023-8-25 21:00:51

        那我也不是人了呀!!!嘤嘤嘤@

    • 15
      @ 2023-8-17 22:17:20

      不会吧,这么简单 应该都会吧......(先 后看!养成习惯!)

      #include <iostream>
      //       瓦是不会告诉你有万能头文件这种东西的
      using namespace std;
      int main()
      {
          int x,a,b,sum=0;
          cin>>x>>a>>b;//输入
          for(int i=1;i<=(x-b)/a;i++)
          {
              if((x-(i*a))%b==0)
              {
                  sum++;//累计方案总数
              }
          }
          cout<<sum;//输出
          return 0;
      }
      

      制作不易,给个赞吧,球球了...... 有什么问题,联系我,邮箱是ASheepBoy_Bed@163.com image

    • 5
      @ 2023-8-20 11:27:16

      AC代码

      
      int main()
      {int n,a,b,x=0;
      #初始化
      
      cin>>n>>a>>b;
      for (int i=1;i<=(n-b)/a;i++)
      {
      #开始枚举
      if((n-(i*a))%b==0)
      {
      x++;
      #数量加一
      }
      }
      cout<<x;
      
      有赞就交👍 ,合作愉快
      • 5
        @ 2023-8-10 17:24:48

        int x,a,b,sum=0; cin>>x>>a>>b; for(int i=1;i<=(x-b)/a;i++) { if((x-(i*a))%b==0) { sum++; } } cout<<sum; //cout<<"顿首顿首再顿首跪求赞"

        • 3
          @ 2023-9-2 15:37:44

          已AC,请谨慎食用,

          谨防诈骗

          #include
          using namespace std;
          int main()
          {
              int x,a,b,ans=0;
              cin>>x>>a>>b;
              for(int i=1;i<=(x-b)/a;i++)
              {
                  if((x-(i*a))%b==0)
                  {
                      ans++;
                  }
              }
              cout<<ans;
              return 0;
          }
          
          • 1
            @ 2024-5-5 22:24:06

            怎么说呢,还是比较简单的😕

            阿巴阿巴,题解如下

            😄

            #include <iostream>

            using namespace std;

            int main()

            {

            int n, a, b, sum = 0;

            cin >> n >> a >> b;

            for (int i = 1; i <= n / a; i++)

            {

            if ((n - i * a >= b) && (n - i * a) % b == 0)

            { sum++;

            }

            }

            cout << sum << endl;

            return 0;

            }

            已AC,请放心食用🎉️ 🚀️

            100 Accepted

            # 状态分数 耗时 内存占用
            -------------------------------------
            #1 Accepted33 1ms 6.9 MiB
            -
            #2 Accepted33 1ms 7.5 MiB
            #3 Accepted34 7.6 MiB
            求赞!!!❤️
            • 1
              @ 2024-1-28 22:30:33

              直接上代码😄


              #include <bits/stdc++.h> 
              using namespace std;
              int x,a,b,s;//x表示X元专款;a表示小狗(每只A元);b表示小猫(每只B元);s有几种方案
              int main()
              {
                  cin>>x>>a>>b;//输入所有数据
                  for(int i=1;i<=(x-b)/a;i++)//枚举小狗只数的可能性
                  {
                      if((x-i*a)%b==0)//如果剩下的钱也能买小猫
                      {
                          s++;//方案数加一
                      }
                  }
                  cout<<s;//输出方案的总数
                  return 0;
              }
              

              image

              • 1
                @ 2023-11-19 9:59:08
                #include <iostream>
                using namespace std;
                int main()
                { 
                    int n, a, b, x = 0;
                    cin >> n >> a >> b;
                    for (int i = 1; i <= n / a; i++)
                    { 
                        if ((n - i * a >= b) && (n - i * a) % b == 0)
                        {
                      	    x++;
                	    }
                    }
                    cout << x << endl;
                    return 0
                我也凑个热闹
                
                • 0
                  @ 2024-3-17 14:39:10

                  #include <iostream> using namespace std; int main() { int X, A, B, sum = 0; cin >> X >> A >> B; for (int i = 1; i <= X / A; i++) { if ((X - i * A >= B) && (X - i * A) % B == 0) { sum++; } } cout << sum << endl; return 0; } //切记不要抄袭; //切记不要抄袭; //切记不要抄袭;

                  • 0
                    @ 2024-2-26 21:08:05

                    <^_^> #include <iostream> using namespace std; int main() { int x, a, b, sum = 0; cin >> x >> a >> b; for (int i = 1; i <= (x - b) / a; i++) { if ((x - i * a) % b == 0) { sum++; } } cout << sum; return 0; }**

                    • 0
                      @ 2024-2-13 22:48:58
                      #include <iostream>
                      using namespace std;
                      int main()
                      {
                          int x,a,b,sum=0;
                          cin>>x>>a>>b;
                          for (int i=1;i<=(x-b)/a;i++)
                          {
                              if ((x-a*i)%b==0 && x-a*i>0)
                              {
                                  sum++;
                              }
                          }
                          cout<<sum<<endl;
                          return 0;
                      }
                      
                      • 0
                        @ 2024-2-3 21:51:48
                        #include <bits/stdc++.h> 
                        using namespace std;
                        int main()
                        {
                            int x,a,b,s=0,c=0,v=0;
                            cin>>x>>a>>b;
                            for (int i=1;i<=32768;i++)
                            {
                                if (b*i<x)
                                {
                                    c=b*i;
                                    v=x-c;
                                    if (v%a==0)
                                    {
                                        s++;
                                    }
                                }
                            }
                            cout<<s<<endl;
                            return 0;
                        }
                        做了30分钟的新写法
                        
                        • 0
                          @ 2024-1-30 22:34:08

                          image

                          • 0
                            @ 2024-1-2 20:36:46
                            using namespace std;
                            int main(){
                            	int x,a,b,ans=0;
                            	cin>>x>>a>>b;
                            	for(int dog=1;dog<=x/a;dog++)
                            		if(x-dog*a>0&&(x-dog*a)%b==0) ans++;
                            		cout<<ans<<endl;
                            	return 0;
                            } 
                            
                            • 0
                              @ 2024-1-2 20:36:10
                              1. #include<iostream> using namespace std; int main(){ int x,a,b,ans=0; cin>>x>>a>>b; for(int dog=1;dog<=x/a;dog++) if(x-doga>0&&(x-doga)%b==0) ans++; cout<<ans<<endl; return 0; }
                              • 0
                                @ 2024-1-2 20:35:21

                                荔枝做全网代码最简洁的人!(勿喷✌) #include<iostream> using namespace std; int main(){ int x,a,b,ans=0; cin>>x>>a>>b; for(int dog=1;dog<=x/a;dog++) if(x-doga>0&&(x-doga)%b==0) ans++; cout<<ans<<endl; return 0; }

                                • 0
                                  @ 2024-1-1 14:15:44

                                  不会把,不会吧。 不会有人和我一样一位钱要花光吧

                                  信息

                                  ID
                                  8
                                  时间
                                  1000ms
                                  内存
                                  16MiB
                                  难度
                                  6
                                  标签
                                  递交数
                                  9312
                                  已通过
                                  3029
                                  上传者