725 - Division


这道题做了两个小时,终于搞定,这道题吧,主要控制除数的范围(我用的范围是1000到99999,然后又分1000到9999和10000到99999两种情况讨论,个人感觉好麻烦抓狂抓狂),然后用输入的数和除数相乘求出第一个数,最后注意输出格式(我在这个地方改了差不多一个小时,坑死我了发火发火发火发火发火);

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
int pp(int a,int b,int s[11])
{
    int q=0;
    for(int i=0;;i++){
        s[i]=a%10;a=a/10;q++;
        if(a==0) break;
    }
    for(int i=q;;i++){
        s[i]=b%10;b=b/10;
        if(b==0) break;
    }
}
int main()
{
    int n,m=0;
    while(cin>>n&&n>=2&&n<=79&&n!=0){
        int q=1;
        if (m>0) printf("\n");m++;
        for(int i=1000;i<99999;i++){
            if(i<=9999){
              int flag=1; int pro=i*n;
              if(pro>10000&&pro<99999){
                  int s[9]; pp(pro,i,s);sort(s,s+9);
                  for(int j=0;j<9;j++){
                    if(s[j]!=j+1) flag=0;
                  }
                  if(flag==1) {q=0;cout<<pro<<" / "<<0<<i<<" = "<<n<<endl;}
              }
            }
            else if(i>10000){
                int flag=1; int pro=i*n;
                if(pro>10000&&pro<99999){
                    int s[10]; pp(pro,i,s);sort(s,s+10);
                    for(int j=0;j<10;j++){
                        if(s[j]!=j) flag=0;
                    }
                    if(flag==1) {q=0;cout<<pro<<" / "<<i<<" = "<<n<<endl;}
                }
            }
        }
        if(q==1){
            cout<<"There are no solutions for "<<n<<"."<<endl;

        }
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值