您的位置:首页 > 健康 > 美食 > 常见的网页布局有几种方式_企业官网设计模板_互联网营销主要学什么_爱网站查询

常见的网页布局有几种方式_企业官网设计模板_互联网营销主要学什么_爱网站查询

2025/4/23 12:00:51 来源:https://blog.csdn.net/2301_80585598/article/details/147354259  浏览:    关键词:常见的网页布局有几种方式_企业官网设计模板_互联网营销主要学什么_爱网站查询
常见的网页布局有几种方式_企业官网设计模板_互联网营销主要学什么_爱网站查询

 归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
唯有主动付出,才有丰富的果实获得收获!

高精度乘法

#include<bits/stdc++.h>
using namespace std;
#define debug(a) cout<<a<<" "const int N=1e5+100; // 定义一个较大的数组大小,用于存储大整数string s1,s2; // 用于输入两个字符串形式的大整数
int a[N],b[N],c[N],ans,ma; // a 和 b 存储两个大整数的每一位数字,c 存储结果,ans 用于进位,ma 记录较大数的位数int main()
{cin>>s1>>s2; // 输入两个大整数(以字符串形式)int j=1,k=1;// 将字符串 s1 的每一位数字从低位到高位存入数组 afor(int i=s1.size()-1;i>=0;i--) a[j++]=s1[i]-'0';// 将字符串 s2 的每一位数字从低位到高位存入数组 bfor(int i=s2.size()-1;i>=0;i--) b[k++]=s2[i]-'0';// 获取两个大整数的最大长度ma=max(s1.size(),s2.size());// 模拟竖式加法,逐位相加并处理进位for(int i=1;i<=ma;i++){ans+=a[i]+b[i]; // 当前位相加,并加上上一位的进位c[i]=ans%10; // 当前位的结果是相加后的个位数ans/=10; // 更新进位值}// 如果最高位仍有进位,则需要额外增加一位if(ans) c[++ma]=ans;// 从高位到低位输出结果for(int i=ma;i>=1;i--)cout<<c[i];return 0;
}

高精度减法

#include<bits/stdc++.h>
using namespace std;
#define debug(a) cout<<a<<" "const int N=1e5+100; // 定义一个较大的数组大小,用于存储大整数string s1,s2; // 用于输入两个字符串形式的大整数
int a[N],b[N],c[N],ma; // a 和 b 存储两个大整数的每一位数字,c 存储结果,ma 记录较大数的位数int main()
{cin>>s1>>s2; // 输入两个大整数(以字符串形式)// 如果 s1 小于 s2,则交换两者,并输出负号表示结果为负数if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){cout<<'-'; // 输出负号swap(s1,s2); // 交换 s1 和 s2 的值,确保 s1 始终是较大的数}int j=1,k=1;// 将字符串 s1 的每一位数字从低位到高位存入数组 afor(int i=s1.size()-1;i>=0;i--) a[j++]=s1[i]-'0';// 将字符串 s2 的每一位数字从低位到高位存入数组 bfor(int i=s2.size()-1;i>=0;i--) b[k++]=s2[i]-'0';// 获取两个大整数的最大长度ma=max(s1.size(),s2.size());// 模拟竖式减法,逐位相减并处理借位for(int i=1;i<=ma;i++){if(a[i]-b[i]<0) // 如果当前位不够减{a[i]+=10; // 向高位借 10a[i+1]-=1; // 高位减 1}c[i]=a[i]-b[i]; // 当前位的结果是相减后的值}// 去掉结果中的前导零while(c[ma]==0&&ma>1) ma--;// 从高位到低位输出结果for(int i=ma;i>=1;i--)cout<<c[i];return 0;
}

高精度乘法

#include<bits/stdc++.h>
using namespace std;
#define debug(a) cout<<a<<" "const int N=1e5+100; // 定义一个较大的数组大小,用于存储大整数string s1,s2; // 用于输入两个字符串形式的大整数
int a[N],b[N],s[N],c[N],ans,ma; // a 和 b 存储两个大整数的每一位数字,s 存储中间结果,c 存储最终结果,ans 用于进位,ma 记录结果的最大可能位数int main()
{	cin>>s1>>s2; // 输入两个大整数(以字符串形式)int j=1,k=1;// 将字符串 s1 的每一位数字从低位到高位存入数组 afor(int i=s1.size()-1;i>=0;i--) a[j++]=s1[i]-'0';// 将字符串 s2 的每一位数字从低位到高位存入数组 bfor(int i=s2.size()-1;i>=0;i--) b[k++]=s2[i]-'0';// 计算结果的最大可能位数ma=s1.size()+s2.size()-1; // 两个数相乘的结果最多有 s1.size() + s2.size() - 1 位// 模拟竖式乘法,逐位相乘并累加到中间结果数组 s 中for(int i=1;i<=s1.size();i++){for(int j=1;j<=s2.size();j++){s[i+j-1]+=a[i]*b[j]; // 将第 i 位和第 j 位相乘的结果累加到对应的位置}}// 处理进位,将中间结果数组 s 转换为最终结果数组 cfor(int i=1;i<=ma;i++){ans+=s[i]; // 累加当前位的值和之前的进位c[i]=ans%10; // 当前位的结果是累加值的个位数ans/=10; // 更新进位值}// 如果最高位仍有进位,则需要额外增加一位if(ans) c[++ma]=ans;// 去掉结果中的前导零while(c[ma]==0&&ma>1) ma--;// 从高位到低位输出结果for(int i=ma;i>=1;i--)cout<<c[i];return 0;
}

高精度除法

#include<bits/stdc++.h>
using namespace std;
#define debug(a) cout<<a<<" "const int N=1e5+10; // 定义一个较大的数组大小,用于存储大整数string s1; // 用于输入字符串形式的大整数
int a[N],b,c[N],ans,ma; // a 存储大整数的每一位数字,b 是除数,c 存储结果,ans 用于存储当前余数,ma 记录大整数的位数int main()
{cin>>s1>>b; // 输入大整数(以字符串形式)和除数 bint j=1;// 将字符串 s1 的每一位数字从低位到高位存入数组 afor(int i=s1.size()-1;i>=0;i--) a[j++]=s1[i]-'0';ma=s1.size(); // 获取大整数的位数// 模拟竖式除法,逐位计算商和余数for(int i=ma;i>=1;i--){ans=ans*10+a[i]; // 当前余数乘以 10 加上当前位的数字c[i]=ans/b; // 当前位的商是当前余数除以除数 b 的结果ans%=b; // 更新余数为当前余数对除数 b 取模的结果}// 去掉结果中的前导零while(c[ma]==0&&ma>1) ma--;// 从高位到低位输出结果for(int i=ma;i>=1;i--)cout<<c[i];return 0;
}

高精度阶乘和

#include<bits/stdc++.h>
using namespace std;
#define debug(a) cout<<a<<" "const int N=1e5+10; // 定义一个较大的数组大小,用于存储大整数int n,a[N],b[N],ans,ma,mb; // a 存储当前阶乘的结果,b 存储前 n 个阶乘的和,ans 用于进位,ma 和 mb 分别记录当前阶乘和总和的最大位数int main()
{cin>>n; // 输入 n,表示求前 n 个阶乘的和for(int k=1;k<=n;k++) // 外层循环:求前 n 个阶乘的和{a[1]=1; ma=1; // 初始化当前阶乘为 1(即 1 的阶乘),并设置最大位数为 1for(int i=1;i<=k;i++) // 内层循环:计算 k 的阶乘{ans=0; // 初始化进位值为 0// 高精度乘法:将当前阶乘结果 a 乘以 ifor(int j=1;j<=ma;j++){ans+=a[j]*i; // 当前位乘以 i 并加上之前的进位a[j]=ans%10; // 当前位的结果是累加值的个位数ans/=10; // 更新进位值}// 如果最高位仍有进位,则需要扩展位数while(ans){a[++ma]=ans%10; // 将进位值添加到新的高位ans/=10; // 继续处理进位}}// 更新总和的最大位数mb=max(ma,mb); ans=0;// 高精度加法:将当前阶乘结果 a 加到总和 b 中for(int i=1;i<=mb;i++){ans+=a[i]+b[i]; // 累加当前位和之前的进位b[i]=ans%10; // 当前位的结果是累加值的个位数ans/=10; // 更新进位值}// 如果最高位仍有进位,则需要扩展位数if(ans) b[++mb]=ans;}	// 从高位到低位输出结果for(int i=mb;i>=1;i--)cout<<b[i];	return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com