【Leetcode】面试题 08.05. 递归乘法、HJ55 挑7

简介: 目录面试题 08.05. 递归乘法 HJ55 挑7

作者:小卢

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》


目录

面试题 08.05. 递归乘法

HJ55 挑7


面试题 08.05. 递归乘法

面试题 08.05. 递归乘法

题目描述:

递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。

示例:


思路:

本题要求我们用递归函数完成,但其实你用循环可以通过,我们来讲讲递归的思路,我们让每次函数调用时,B-1,当B=0时,也就是递归到底了,我们让他返回,因为我们是乘法嘛,我们就让每次返回的时候+A,这样就加了B个A了相当于A*B了。

代码:

int multiply(int A, int B){
    if(B>0)
    return multiply(A,B-1)+A;
    return 0;
}

HJ55 挑7

挑7_牛客题霸_牛客网

题目描述:

描述

输出 1到n之间 的与 7 有关数字的个数。

一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)数据范围: 1≤n≤30000

输入描述:

一个正整数 n 。( n 不大于 30000 )

输出描述:

一个整数,表示1到n之间的与7有关的数字个数。

示例:


思路:

我们先让i找可以被7整除,再找每个数每个位是否有7.

代码:

#include <stdio.h>
int seven(int n)
{
    while(n)
    {
        if(n<10&&n!=7)
        return 0;
        if(n%10==7)
        return 1;
        n/=10;
    }
    return 0;
}
int main() {
    int n;
    int num=0;//num个数
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        if(i%7==0)//i要从开始,不然0%7=0
        num++;
        else
        num+=seven(i);
    }
    printf("%d",num);
    return 0;
}
目录
打赏
0
0
0
0
1
分享
相关文章
LeetCode------递归(爬楼梯)
这篇文章通过LeetCode上的"爬楼梯"问题介绍了递归的基本概念和实现方法,包括递归公式的推导、基本递归实现、使用备忘录优化以避免重复计算,以及自底向上的迭代方法来提高效率。
LeetCode------递归(爬楼梯)
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
深入解析力扣171题:Excel表列序号(进制转换法详解及模拟面试问答)
深入解析力扣171题:Excel表列序号(进制转换法详解及模拟面试问答)
|
7月前
|
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成
【经典LeetCode算法题目专栏分类】【第11期】递归问题:字母大小写全排列、括号生成
深入解析力扣181题:超过经理收入的员工(自连接方法详解及模拟面试问答)
深入解析力扣181题:超过经理收入的员工(自连接方法详解及模拟面试问答)
深入解析力扣179题:最大数(自定义排序法详解及模拟面试问答)
深入解析力扣179题:最大数(自定义排序法详解及模拟面试问答)