练习:函数(1)

第1关:九九乘法表

任务要求 设计程序,实现输出“九九乘法表”。

,

输入要求 无输入

输出要求 按照要求输出“九九乘法表”, 输出内容每一行末尾含有一个空格。

//根据题目要求完成程序设计
#include <stdio.h>
void printMultiplicationTable (void);
/*
    函数名称:printMultiplicationTable
    函数功能:输出九九乘法表
*/

//设计函数printMultiplicationTable
/*=====Begin=====*/
void printMultiplicationTable(void)
{
    for(int i = 1; i<=9; i++)
    {
        for(int j = 1; j<=i; j++)
        {
            printf("%d*%d=%2d ",i,j,i*j);
        }
        printf("\n");
    }
}
/*======End======*/

/*
    函数名称:solve
    函数功能:程序入口
    函数返回值:void
*/

//设计函数solve
/*=====Begin=====*/
void solve()
{
    printMultiplicationTable();   
}

/*======End======*/

第2关:NN乘法表

任务要求 设计程序,实现输出“NN乘法表”。

,

输入要求 输入一个正整数N(1<=N<=9)

输出要求 按照要求输出“NN乘法表”

输入样例 3

输出样例

1*1= 1

2*1= 2 2*2= 4

3*1= 3 3*2= 6 3*3= 9

说明 输出内容每一行末尾没有空格;每两个乘法表达式之间有一个空格

//根据题目要求完成程序设计
#include <stdio.h>
/*
    函数名称:printMultiplicationTable
    函数功能:输出NN乘法表
    函数参数:整数
*/

//设计函数printMultiplicationTable
/*=====Begin=====*/

void printMultiplicationTable(int n)
{
    for(int i = 1; i<=n; i++)
    {
        int j = 0;
        for(j = 1; j<i; j++)
        {
            printf("%d*%d=%2d ",i,j,i*j);
        }
        printf("%d*%d=%2d",i,j,i*j);
        printf("\n");
    }
}
/*======End======*/
/*
    函数名称:solve
    函数功能:程序入口
    函数返回值:void
*/
//设计函数solve
/*=====Begin=====*/
void solve()
{
    int n =0;
    scanf("%d",&n);
    printMultiplicationTable(n);
}

/*======End======*/

第3关:阶乘的和

任务要求 设计程序,输出所有满足条件的五位数:该五位数等于其每位数字的阶乘之和,即abcdef=a!+b!+c!+e!+f!。

输入要求 无输入

输出要求 从小到大依次输出符合条件的五位数,中间用空格隔开。

//根据题目要求完成程序设计
#include <stdio.h>
int fact(int n)
{
    if(n==1||n==0)
    return 1;
    else
    return n*fact(n-1);
}
/*
    函数名称:factorial
    函数功能:计算n!
    函数参数:整数
*/

//设计函数factorial
/*=====Begin=====*/
int factorial(int n)
{
    int sum = 0;
    int m = n;
    for (int i = 0; i < 5; i++)
    {
        int tmp = 0;
        tmp = n % 10;
        n = n / 10;
        tmp = fact (tmp);
        sum += tmp;

    }
    if (sum == m)
    {
        return m;
    }
    else
        return 0;
}


/*======End======*/

/*
    函数名称:solve
    函数功能:程序入口,输出满足条件的五位数
*/

//设计函数solve
/*=====Begin=====*/
int solve()
{
    for (int i = 10000; i < 100000; i++)
    {
        int l = factorial(i);
        if (l)
        {
            printf("%d ",l);
        }
    }
}

/*======End======*/

第4关:特殊的数

任务要求 设计程序,输出所有满足条件的四位数:该四位数是个完全平方数;同时满足千位、十位数字之和是10,百位、个位数字之积是7。

输入要求 无输入

输出要求 按照要求输出满足条件的数,中间用空格隔开。

//根据题目要求完成程序设计
#include <stdio.h>
#include<math.h>
/*
    函数名称:function
    函数功能:用于判定整数num是否满足条件(完全平方数;满足千位、十位数字之和是10,百位、个位数字之积是7)
    函数参数:整数
*/

//设计函数function
/*=====Begin=====*/
int function(int i)
{
       int m = i;
       int a = m%10;
       m=m/10;
       int b = m%10;
       m=m/10;
       int c = m%10;
       m=m/10;
       int d = m%10;
       if((int)sqrt(i)==sqrt(i)&&(d+b)==10&&a*c==7)
       {
           printf("%d ",i);
       }
}

/*======End======*/

/*
    函数名称:solve
    函数功能:程序入口,输出满足条件的四位数
*/

//设计函数solve
/*=====Begin=====*/

void solve()
{
      for(int i = 1000;i<10000;i++)
      {
         function(i);
      }
}

/*======End======*/

第5关:有序数列求和

任务要求 设计程序,利用递归算法完成有序数列求和:1+2+3+4+...+n的值。

输入要求 输入一个正整数n(1<=n<=1e4)

输出要求 输出一个结果,代表1+2+3+4+...+n的值。

输入样例1 1

输出样例1 1

输入样例2 100

输出样例2 5050

//根据题目要求完成程序设计
#include <stdio.h>

/*
    函数名称:function
    函数功能:递归函数实现有序数列求和
    函数参数:整数
*/

//设计函数function
/*=====Begin=====*/
int function(int n)
{
    if(n==1)
    return 1;
    return n+function(n-1);

}
/*======End======*/

/*
    函数名称:solve
    函数功能:程序入口,输出有序数列的和
*/

//设计函数solve
/*=====Begin=====*/
int solve()
{
    int m = 0;
    scanf("%d",&m);
    printf("%d",function(m));
}
/*======End======*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值