首页 > 试题广场 >

数学实验

[编程题]数学实验
  • 热度指数:1522 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
给出一个数字n,需要不断地将所有数位上的值做乘法运算,直至最后数字不发生变化为止。
问最后生成的数字为多少?
示例1

输入

10

输出

0
示例2

输入

55

输出

0

说明

55 -> 5 * 5 = 25 -> 2 * 5 = 10 -> 1 * 0 = 0  

备注:
头像 漫漫云天自翱翔
发表于 2021-08-02 16:54:01
题解一:暴力主要思路:根据题意,①判断n是否大于10,小于10结束返回n,否则执行②②对n各位求乘积,执行① class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @pa 展开全文
头像 牛客238459914号
发表于 2020-12-20 01:18:58
f(x)=x^ (x-1)让我想起了按位消去正整数n二进制形式中最右边的1,即x&(x-1),假设x的二进制中最右边的1在第i位(从个位开始数),即x的二进制形式为b10..0,其中b表示x二进制第i位左边的形式,1右边一共有i-1个0,则x-1的二进制形式为b01...1,b的不变,第i位 展开全文
头像 听说敲代码的不容易找到女朋友
发表于 2020-12-18 21:44:08
链接:https://ac.nowcoder.com/acm/contest/10166/B来源:牛客网 题目描述操场上有n个人排成一队,这n个人身高互不相同,可将他们的身高视为一个1到n的排列。这时需要把队伍变成升序,也就是从矮到高排序。每次可以选择一个人,让这个人和在他身后的人比高矮,如果比对方 展开全文
头像 开朗米其罗
发表于 2021-06-21 07:32:48
计算方案 递归 临界条件 当结果长度为 1 或者计算结果没变时结束。 计算过程 将数字 n 转为数字列表后逐位相乘。 class Solution: def mathexp(self , n ): # write code here tmp_n = n 展开全文
头像 牛客238459914号
发表于 2020-12-20 16:02:26
思路:在冒泡排序(升序)中,每次都是从排列的最左端开始,逐个和身后的比较, 如果大于身后的,则交换位置继续和后面的比较,如果身后的,则身后的接着和 后面的比较直到到达队尾。但是在这里,在冒泡的过程中,如果选择的人比身后 的人矮就会停止冒泡,这时仍然每次选择从最左端开始冒 展开全文

问题信息

难度:
10条回答 1653浏览

热门推荐

通过挑战的用户

查看代码