乘以整数的持久性
multiplying Persistenance of an integer
我正在尝试制作执行以下操作的代码:
将整数的数字相乘并继续该过程会得到令人惊讶的结果,即产品序列始终以个位数到达。
例如:
715 -> 35 -> 15 -> 5
88 -> 64 -> 24 -> 8
27 -> 14 -> 4
达到个位数所需的产品数称为该整数的持久性数。因此,715 和 88 的持久性数为 3,而 27 的持久性数为 2。做一个程序来查找唯一持久性大于 3 的两位数?
我能够想出一个粗略的想法,代码在下面,但它似乎不起作用:
#include <iostream>
using namespace std;
/*
*
*/
int PersistentNum(int digit)
{
int x;
int pers = 0;
int y = 1;
while(x > 9)
{
do {
x = digit % 10;
y = y * digit;
x = x / 10;
} while(x > 0);
pers++;
x = y;
}
return pers;
}
int main()
{
int repNum;
int Persist;
cout << "Please enter a non-zero, positive integer: ";
cin >> repNum;
Persist = PersistentNum(repNum);
cout << " the Persistence of " << repNum <<" is " << Persist;
return 0;
}
你必须每次都分配y,因为它在这里保留旧的已经相乘的值。
你也搞砸了原始代码中 x 和数字的含义
而不是
func(int x)
你写的
func(int digit)
更正的代码
#include <iostream>
using namespace std;
/*
*
*/
int PersistentNum(int x)
{
int digit;
int pers = 0;
int y =1 ;
while(x > 9)
{
y = 1;
do{
digit = x % 10;
y = y* digit;
x = x/10;
}while(x > 0);
pers++;
x = y;
}
return pers;
}
int main()
{
int repNum;
int Persist;
cout<<"Please enter a non-zero, positive integer: ";
cin>>repNum;
Persist = PersistentNum(repNum);
cout<< " the Persistence of " << repNum <<" is " << Persist;
return 0;
}
根据您的问题,您希望我我们找到2位数字
#include<iostream>
using namespace std;
int main()
{int y;int z;int temp;int n;
for(int x=10;x<100;x++)
{temp=0;n=x;
while(x>9){
y=x%10;
z=x/10;
x=y*z;temp++;
}
x=n;
if(temp>3){
cout<<"number is "<<n<<"persistence is"<<temp;
/*number is 77 persistence is 4 */
break;}/*i have used break i my code because 77 is the only two digit number with persistence >3*/
}
}
首先,您必须在第一个循环之前初始化 x,或者仅在两个循环中使用do..while
循环,请阅读垃圾值。
int PersistentNum(int number)
{
int digit, pers = 0, curr_num;
do {
curr_num = 1;
do {
digit = number % 10;
curr_num = curr_num * digit;
number = number / 10;
} while(number > 0);
cout << curr_num << " ";
number = curr_num;
pers++;
} while(number > 9);
cout << endl;
return pers;
}
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 在C++中手动调整数组大小
- 检查输入是否不是整数或数字
- C++使用整数的压缩数组初始化对象
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何只允许用户输入正整数
- 如何在c++中从文本文件中逐行读取整数
- C++:如何循环通过向量中的整数元素
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 序列化,没有库的整数,得到奇怪的结果
- 在一定长度后从数组中打印时缺少整数
- std::当在256字节边界上写入整数时,流的奇怪行为
- 内联程序集printf将整数解释为地址
- 当比特(而不是字节)的顺序至关重要时的持久性
- 乘以整数的持久性