分段多位数乘法4千乘以4千与4千乘以8位的原则是一样的,从左到右相乘,最高位相乘后,往后位的进位与前位相加。不想再设计了,这里只做描述和一个8位相乘的代码例子记录,估计的虽说堪舆傅里叶变换快速乘法媲美,还是觉得稍逊一点。同样的道理可用加法、减法、除法,其重点就是对进位用加法进行处理,而一次可以处理多位,受数据类型位数的限制,只能取其位数的一半-1位作为乘法,加法、减法、除法则可达18位推理的位数。
从低位往高位算也是一样的原则,(有一点区别就是要让进位暂存,等运算完成后再用加法计算进位。)从程序写作来说,从高位往低位进行运算写程序比较方便。
说白了就是传统的算法把多位数当作1位...
    
    
    
    
          
	
	
void 水仙十全十美()
{
	long long 数 = 153, 和 = 0, 幕 = 数, 借 = 数, 方 = 1;
	while (数 <= 18000000000000000000)
	{ //缘由https://bbs.bccn.net/thread-499381-1-1.html
		if (幕)
			方 *= 借 % 10, 幕 /= 10;
		else if (借)
			幕 = 数, 和 += 方, 方 = 1, 借 /= 10;
		else if (和 == 数)
			cout << 和 << ends, ...
    
    
    
    
          
	
 int aaa = 0, aaaa = 0, a = 111, aa = a, jc = a; string zc = "";
 while (a < 999)
 { //缘由https://bbs.bccn.net/thread-499358-1-1.html
  if (aa)aaa = aa % 10, aaaa += aaa*aaa*aaa, aa /= 10;
  else
  if (jc == aaaa || zc.find(to_string(aaaa)) != string::npos)
   cout << a << "固定=>" << j...
    
    
    
    
          
	
    Sub 狐狸找兔子(ByVal 数组() As Integer, Optional ByVal 找位 As Integer = 0, Optional ByVal 序位 As Integer = 1)
        Dim 选 = ""
        Do
            找位 = 找位 Mod 10
            Console.WriteLine(数组(找位))
            Console.WriteLine(序位.ToString("间隔0"))
            If 选.Contains(数组(找位)...
    
    
    
    
          
	
    Sub 递归逆向(ByVal 数 As Integer)
        Console.Write(数 Mod 10)
        数 = 数 - (数 Mod 10)
        数 = 数 / 10
        If 数 > 0 Then
            递归逆向(数)
        Else
            Console.WriteLine()
        End If
    End Sub
    
    
    
    
          
	
 int aa = 111, aaa = 0, aaaa = 0, a = aa;
 while (a < 999)
 { //缘由https://bbs.bccn.net/viewthread.php?tid=499370&pid=2719622&page=1#pid2719622
  if (aa)aaa = aa % 10, aaaa += aaa*aaa*aaa, aa /= 10;
  else
  if (a == aaaa)cout << a << ends, aa = ++a, aaaa = 0; else aa = ++a, ...
    
    
    
    
          
	
    Sub Main()
继续:
        Dim 测时 As New Diagnostics.Stopwatch
        测时.Start()
        '===============================================================================================================
        Dim 数 = 1000000000000000000
        While 数 <= 1000000000000010000
     ...
    
    
    
    
          
	
void 合成位数并求质数()
{//缘由https://bbs.bccn.net/viewthread.php?tid=499357&pid=2719481&page=1#pid2719481 
 int shu[100]{0}, xu = 0, ge = 0, wei = 0, he = 0, mu = 1, j = 0;
 cin >> ge >> wei;
 while (xu<ge)cin >> shu[xu++]; xu = wei;
 while (j<ge - 2)if (xu)he += shu[--xu + j] * mu, m...
    
    
    
    
          
	缘由https://bbs.bccn.net/redirect.php?tid=499353&goto=lastpost#lastpost
直接写未调试
int 数=12340,合=0,计=0;
计=数;
while(计)合=合*10+计%10,计/=10;
cout<<数+合; 
    
    
    
    
          
	缘由https://bbs.bccn.net/redirect.php?tid=499354&goto=lastpost#lastpost
直接写未调试
int 个=0,小=110,大=0,均=0,数=0;
while(1)
{
cin>>数;
if(数==-1)break;
++个;
if(数>大)大=数;
if(数<小)小=数;
均+=数;
}
cout<<小<<"小"<<大<<"大均"<<均/个;
    
    
    
    
          
	
	
void 数字替换使最大(int 数, int 替)
{//缘由https://bbs.bccn.net/viewthread.php?tid=499343&page=1&extra=#pid2719397
 int 取 = 0, 合 = 数, 借 = 0, 幕 = 10;
 while (替)if ((借 = 替 % 幕) > 取)取 = 借, 替 /= 幕; else 替 /= 幕;
 while (幕 < 数)
 if ((借 = (((数 / 幕)*幕) + (取*(幕 / 10)) + (幕>10 ? (数 % (幕 / 1...
    
    
    
    
          
	
void 还原加密数字()
{
	int a[30]{0}, aa[30]{0}, n = 0, j = 0, jj = 0, js = 0; bool k = true;
	cout << "输入位数和数据:"; cin >> n; while (j < n)cin >> aa[j], a[j] = j++ + 1; --j;
	while (j)
	{//缘由https://bbs.bccn.net/viewthread.php?tid=499258&page=1&extra=#pid2719048
		if (a[jj++] <= n)
...
    
    
    
    
          void 获取2个谷值()
{
	double 读数据[3000]{0}, 谷值[3]{0}, 阀值 = 20.0;
	char* 文件 = "..\\测试存文件\\data100000.txt";
	文件读取(文件, "r", 读数据, 3000);
	int 序 = 0, 数序1 = 0, 数序2 = 0, 数序3 = 0, 谷口 = 0;
	while (序 < 3000)
	{//缘由https://bbs.bccn.net/viewthread.php?tid=499186&page=1&extra=#pid2718585
		if (谷值[...
    
    
    
    
          void 黑洞数123(int 整数)
{
	int 偶 = 0, 奇 = 0, 位 = 0, 数 = 整数;
	while (数 != 123)
	{
		cout << 数 << "->";
		while (数)if (数 % 10 % 2)++奇, ++位, 数 /= 10; else ++偶, ++位, 数 /= 10;
		数 = 偶 * 100 + 奇 * 10 + 位;
		if (数 < 100)数 *= 10;
		偶 = 奇 = 位 = 0;
		cout << 数 << ends;
	}
	cout << endl;
}
	int ...
    
    
    
    
          
	设计一个自动分析黑洞数并添加到判断中的程序,初测运行正常,如百度百科中列出的495,6174都正确自动识别添加到判断队列,以下是程序,欢迎测试,指正。本程序作为分析工具可较易扩展分析功能。
	缘由https://bbs.bccn.net/viewthread.php?tid=499134&page=4&extra=#pid2718460
void 寻找黑洞数()
{
	int shu = 47, shuan = shu, p = 0, j = 0, cf[44]{0}, 黑洞数[44]{0};
	while (shu < INT_M...
    
    
    
    
          int 数重组位最大(int 整数)
{		/*C++任意输入一个整数,再把它的各位数字重新组合一个新的整数,使其值最大*///缘由https://bbs.bccn.net/viewthread.php?tid=499134&pid=2718301&page=1#pid2718301
	int 输入整数 = 整数, 数(0), 输出(0), 取值(0), 比较(0), 暂存(0), 位(0), 序(0), 反向(0);
	bool 控制(true);
	if (输入整数 < 100)输入整数 *= 10;
	if (输入整数 > 1000)输入整数 /= 10;...
    
    
    
    
          void 判断密码强弱()
{//缘由https://bbs.bccn.net/thread-499125-1-1.html
	char aa[44]{""}; cout << "输入密码必须大于6位的字母数字符号组合:" << ends; cin >> aa;
	int a = 0, b = 0, c = 0, j = 0;
	while (aa[j] != '\0')
	{
		if (aa[j] >= '0'&&aa[j] <= '9')++a;
		else if (aa[j] >= 'a'&&aa[j] <= 'z' || aa[j...
    
    
    
    
          1审阅题目后决定采用固定数组来处理,动态数组在之后自己去实现
 2看2个示例先写一个100的数组并赋值为输入的数量,同时进行初始化后输出,观察程序是否按意图正常运行:
 int aa[100]{0},n=0,j=0;
 cout << "输入数量" << endl;cin>>n;
 while(j<n)aa[j]=1+j++;
 j=0;while(aa[j])cout<<aa[j++]<<ends;cout<<endl;
 3依据题目条件先写一个报数2剔除的,把凡是报2的数组赋值为0即可
 int bs=0;j=0;
 while(j<n){if(aa[j])++bs;...
    
    
    
    
          int 返回月的天数(int 年, int 月)
{//缘由https://bbs.csdn.net/topics/395074486
	return (月 == 2 ? 
		((((!(年 % 4) && 年 % 100) || !(年 % 400)) ? 1 : 0) ? 29 : 28) :
		(((月 <= 7 && 月 % 2) || (月>7 && !(月 % 2))) ? 31 : 30));
}
int 返回年总天数(int 年)
{
	return ((年) ? 365 ...
    
    
    
    
          
int 返回日期总天数(int 年, int 月, int 日)
{
	int 总天数 = 0;
	if (月 == 12 && 日 == 31)总天数 = 返回年总天数(年);
	else
	{
		while (--月)总天数 += 返回月的天数(年, 月);
		总天数 += 日 + 返回年总天数(--年);
	}
	return 总天数;
}
int 日期差天数计算(int 起年, int 起月, int 起日, int 至年, int 至月, int 至日)
{
	int 总天数 ...