• C语言经典编程题一


    1.题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    /*分解质数*/
    #include<iostream>
    using namespace std;
    void Divide(int num)
    {
        int numcopy =num;
        for(int i=2;i<=numcopy;)
        {
    
               if(numcopy==i)
               {
                   printf("%d",i);
                   return ;
               }
                if(numcopy%i==0&&numcopy!=i)
                {
                    printf("%d*",i);        
                    numcopy=numcopy/i;
                }
                else
                {
                    i++;
                }
        
    
        }
    }

    2.题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
       本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
    1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

    /*水仙*/
    #include<iostream>
    using namespace std;
    
    int IsShuiXian(int num)
    {
        int i,j,k,numcopy=num;
        if(numcopy>999||numcopy<100)
        {
            return -1;
        }
        i=numcopy%10;
        j=numcopy/10%10;
        k=numcopy/100;
        numcopy=i*i*i+j*j*j+k*k*k;
        if(numcopy==num)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
    
    
    int main(void)
    {
        
        for(int i=101;i<=999;i++)
        {
            int j=IsShuiXian (i);
            if(j)
            {
                printf("%d
    ",i);
            }
        }
        system("pause");
        return 0;
    }

    3.判断101-200之间有多少个素数,并输出所有素数。

    void PrintSushu(int num,int num2)
    {
        int count=0;
        int k,leap;
        for(int i=num;i<=num2;i++)
        {
            leap=1;
            k=sqrt(i);
    
            for(int j=2;j<=k;j++)
            {
                if(0==i%j)
                {
                    leap=0;
                    break;
                }
            }
            if(1==leap)
            {
                count++; 
                printf("%d ",i);
            }
        }
    
        printf("%d",count );
    }

    4.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
       后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

    long CalTuzi(int mouth)
    {
        long f1=1;
        long f2=1;
        long temp;
        if(mouth<=0)
        {
            return -1;
        }
        if(mouth<=2)
        {
            return 1;
    
        }
        for(int i=2;i<mouth;i++)
        {
            temp=f2;
            f2=f1+f2;    
            f1=temp;
        }
        return f2;
    }

    5.输入一个数判断是不是回文

    int IsHuiwen(int i)
    {
        int a=0;
        int m=i;
        while(m)
        {
            a=(a*10)+(a%10);
            m=m/10;
        }
        if(i==a)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }

    6.字符串有小写变为大写

    void  ChangBig(char *str)
    {
        while(*str!='')
        {
            if((*str>='a')&&(*str<='z'))
            {
                *str=*str-32;
            }
            str++;
        }
    }
    但愿人长久 千里共婵娟
  • 相关阅读:
    tomcat部署https
    Java程序内存的简单分析
    接口设计原则
    英语常用口语
    洛谷 P3956 棋盘
    洛谷 P1101 单词方阵
    二分查找模板(准确找定值)
    洛谷 P1892 [BOI2003]团伙
    浅谈二分的边界问题
    deque简单解析
  • 原文地址:https://www.cnblogs.com/hellcats/p/4951118.html
Copyright © 2020-2023  润新知