Mikeoperfect
文中序
采纳率66.7%
2016-08-28 02:48 阅读 3.0k
已结题

!!!!!!十万火急 C++编程 敲七问题

要求:输入一个正整数N,从小到大输出满足如下条件的整数:
是7和7的倍数 _包含7的数字。 _且输出的数字≤ N
例如(17,27,37...70,71,72,73...)
_ 代码行数不低于200行,。各位大佬们,小弟知识浅薄实在是想不出还有啥点子了,而且时间也有些紧促了,故求助!⊙﹏⊙‖∣_

  • 点赞
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    shihengzhen101 AlbertS 2016-08-28 04:35

    1)图形界面你是别考虑了,想要加到200也容易,多写废话就行比如:
    2)把cout << "请输入一个数字N:" << endl;写成:

    cout << "请输入一个数字N:" ;
    cout<< endl;
    
    

    3)把if和else加上完整的额大括号
    4)在程序的开头打印一个完整的程序说明比如:

    cout << "程序功能:";
    cout << "当你输入一个数,";
    cout << "程序会输出满足以下条件的额数:";
    cout << "巴拉巴拉输出好多行";
    …………
    

    这是谁出的题目,还要求200行,我也是醉了

    点赞 1 评论 复制链接分享
  • shihengzhen101 AlbertS 2016-08-28 04:02

    我那个程序,不需要的参数的话改成int main()也可以

    点赞 1 评论 复制链接分享
  • shihengzhen101 AlbertS 2016-08-28 02:56

    这个用不了200行啊,有几十行就行了,难道必须200行?

    点赞 评论 复制链接分享
  • shihengzhen101 AlbertS 2016-08-28 03:10

    直接上代码了

     #include <iostream>
    using namespace std;
    
    bool IsContain(int nNumber)
    {
        if(nNumber % 7 == 0)
            return true;
    
        while(nNumber != 0)
        {
            if (nNumber % 10 == 7)
                return true;
    
            nNumber /= 10;
        }
    
        return false;
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        int nNum, nCount = 0;
    
        cout << "请输入一个数字N:" << endl;
        // 获得输入数字
        cin >> nNum;
        // 换一行
        cout << endl;
    
        for(int nIndex = 1; nIndex <= nNum; ++nIndex)
        {
            if (IsContain(nIndex))
            {
                ++nCount;
                cout << nIndex << endl;
            }
        }
    
        if (nCount == 0)
            cout << "没有符合条件的数字!" << endl;
        else
            cout << "符合条件的数共有"<< nCount << "个!";
    
        system("pause");
        return 0;
    }
    
    点赞 评论 复制链接分享
  • Mikeoperfect 文中序 2016-08-28 03:46

    大神你的代码有一些小小的问题,我截图了。图片说明这是我的,可是不知道如何才能够将范围扩大成无限范围??
    #include
    using namespace std;

    int main()
    {
    int i,a=0,N,t;
    loop:
    cout<<"input a number between 1 and 30000:";
    cin>>N;
    if(N>=30000||N<=0)
    {

                cout<<"error number,exit"<<endl;
                return 1;
        }
        for(i=1;i<=N;i++)
        {
                if(i%7==0)
                {
                        cout<<i<<endl;
                        a++;
                }
                else if(i%10==7)
                {
                        cout<<i<<endl;
                        a++; 
                }
                else if(i/10-i/100==7)
                {
                        cout<<i<<endl;
                        a++;
                }
                else if(i/100-i/1000==7)
                {
                        cout<<i<<endl;
                        a++;
                }
                else if(i/1000-i/10000==7)
                {
                        cout<<i<<endl;
                        a++;
                }
        }
        cout<<"7 related number has:"<<a<<endl;
        cout<<"input:1-quite;2-continue"<<endl;
        cin>>t;
        while(t!=1 && t!=2)
        {
                cout<<"input again!"<<endl;
                cin>>t;
        }
        switch(t)
        {
                case 2:
                        goto loop;
        }
        return 0;
    

    }

    点赞 评论 复制链接分享
  • shihengzhen101 AlbertS 2016-08-28 03:57

    1)这个是IDE版本的问题,我用的Vs2008,你改成char或者删除都可以
    2)你说的无限范围是什么意思,输出所有的?,这个不可能的啊,数一辈子都不能数完的,有理数本来就是无限的,所以加个范围的工作才能完成

    点赞 评论 复制链接分享
  • qq_35553864 阿卡阿卡 2016-08-28 12:03

    #include
    #include
    /*---------------------------------------------
    名 称:PrintAllNubHave7
    功 能:打印所有小于N的含有数字7的数字
    输 入:整数-Val
    输 出:无
    返 回:无
    ----------------------------------------------*/

    void PrintAllNubHave7(int Val)
    {
    if(Val <= 0)
    {
    return;
    }

    int Find7PosInNum(int Val);
    void PrintNum(int numBegin, int num, int numMax);
    for (int i = 1; i <= Val; i++)
    {
        int Pos7 = Find7PosInNum(i);
        int num = pow((double)10, (double)Pos7);
        PrintNum(i, num, Val);
        i += num;
    }
    

    }

    /*---------------------------------------------
    名 称:Find7PosInNum
    功 能:查找7在数字Val中的最高位位置,如果不存在返回-1
    比如输入77,返回1
    输 入:val值
    返 回:无
    备 注:无
    ----------------------------------------------*/
    int Find7PosInNum(int Val)
    {
    if (Val <= 0)
    {
    return -1;
    }

    int iDigit = 0;
    
    int tmp = Val;
    while(tmp/10 >0)
    {
        iDigit++;
        tmp /= 10;
    }
    
    while(iDigit >= 0)
    {
        int index = pow((double)10,(double)iDigit);
        if (Val/index == 7)
        {
            return iDigit;
        }
        else
        {
            Val %= index;
            iDigit--;
        }
    }
    return iDigit;
    

    }

    /*---------------------------------------------
    名 称:PrintNum
    功 能:打印从K开始的连续n个整数,大于最大值MAX截止
    输 入:numBegin-开始值,num-打印个数,numMax-最大值
    返 回:无
    备 注:无
    ----------------------------------------------*/
    void PrintNum(int numBegin, int num, int numMax)
    {
    while(num>0 && numBegin<numMax)
    {
    printf("%d\n",numBegin++);
    num--;
    }
    }

    int main(int argc, int* agrv[])
    {
    PrintAllNubHave7(800);
    getchar();
    }

    点赞 评论 复制链接分享

相关推荐