⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 因子个数~.cpp

📁 湖南大学ACM-OJ的部分题目代码
💻 CPP
字号:
/*
统计出因子2的个数因子5的个数 
以及任何数"尾数"是1 3 7 9各自出现的个数
尾数定义n = k*2^p1*5^p2 则k的尾数为n的尾数,p1,p2为最大可能整数
*/
#include <iostream>
using namespace std;

int get25(int n, int base)
{
	int c = 0;
	while(n > 0)
	{
		c += n/base;
		n /= base;
	}
	return c;
}

int get379_div5(int n, int base)
{
    if(n == 0)
		return 0;
	return n/10 + (n%10 >= base)  + get379_div5(n/5 ,base);
}

int get379_div2(int n, int base)
{
    if(n == 0)
		return 0;
	return n/10 + (n%10 >= base) + get379_div2(n/2, base) + get379_div5(n/5 ,base);
}

int get379(int n, int base)
{
	 if(n == 0)
		return 0;
	return n/10 + (n%10 >= base) + get379_div2(n/2, base) + get379_div5(n/5, base);
}
int power2[] = {6, 2, 4, 8};
int power3[] = {1, 3, 9, 7};
int power7[] = {1, 7, 9, 3};
int power9[] = {1, 9};
int main()
{
    int n, m;
    while(cin >> n)
	{ 
     cout<<get25(n, 2)<<ends<<get25(n, 5)<<ends<<get379(n, 3)
		 <<ends<<get379(n, 7)<<ends<<get379(n, 9)<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -