标题:急需啊…………各位大哥帮帮忙
只看楼主
zouyiyao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-18
结帖率:0
已结贴  问题点数:20 回复次数:1 
急需啊…………各位大哥帮帮忙
先将一个4位数,将千位和十位构成一个两位数S,将百位和个位构成一个新数T.(注意:这里不考虑构成的新数S和T十位为0的情况。如:1001构成新数10和01,但是T不是一个满足条件的数据。所以不考虑)如果构成的新数S是T的5倍,则将该数存放在数组中,如6102,构成新数S位60,T为12,S=5*T。则6102满足条件,存放在数组中,最后输出满足条件的所有数!
搜索更多相关主题的帖子: 各位 大哥 急需 
2009-11-18 22:02
bccnbin2009
Rank: 7Rank: 7Rank: 7
来 自:浙江
等 级:黑侠
帖 子:86
专家分:602
注 册:2009-10-5
得分:20 
看看是不是满足你的要求:

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;

//检查该数是否符合条件
bool CheckData(int num)
{
    //存储四位数的个位,十位,百位,千位
    int A,B,C,D;

    //将四位数每一位都拆开
    D = num/1000;
    C = (num%1000)/100;
    B = ((num%1000)%100)/10;
    A = num-D*1000-C*100-B*10;

    if(C == 0)
        return false;

    //构造新的两位数
    int S = D*10 + B;
    int T = C*10 + A;

    //满足条件则存储
    if((S/T == 5) && (S%T == 0))
        return true;

    return false;
}

int main()
{
    //存储满足条件的四位数
    //开辟一段存储空间
    int *save = new int[100];
    int n = 0;

    int i;
    for(i=1000;i<10000;i++){
        bool r = CheckData(i);
        if(r){
            save[n] = i;
            n++;
        }
    }

    for(i=0;i<n;i++)
        printf("%d\n",save[i]);

    return 0;
}

滨封千里
2009-11-19 13:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-292779-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090307 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved