其他分享
首页 > 其他分享> > 11.28刷题总结

11.28刷题总结

作者:互联网

11.28

求最小公倍数

就是先算两个数的最大公因数,然后两个数分别除以最大公因数,两个数再相乘,再乘以最大公因数。

求汉字个数

由于汉字在内存中占两个字节,且汉字的机内码字节的最高位为1,所以汉字机内码的每个字节表示的十进制数都是负数。统计输入字符串含有几个汉字,只需求出字符串中小于0(a[i]<0)的字符有几个,将它除以2就得到答案。

进制转换跟二进制转换类似,主要原理为:tmp为要转换的数,用a数组来保存转换后每一位的进制数;while(tmp>0)

{d=tmp%r;

a[k++]=d;

tmp/=r;}

从最低数位开始得的,故最后要反向输出

for(int i=k-1;i>=1;--i)

{ if(a[i]>=10)

{ char c='A';

printf("%c",c+(a[i]-10)); }

else printf("%d",a[i]); }

杨辉三角1基本思想:开两个数组,然后b数组为a数组上一次的值,然后套用a[i]=b[i-1]+a[i]公式可得;

具体代码:

#include<iostream>

#include<cstdio>

#include<cstring>

#include<cmath>

using namespace std;

int a[100],b[100];

int main()

{int n;

while(cin >> n)

{b[0]=0,b[1]=1,a[0]=0,a[1]=1;

for(int i=1;i<=n;++i)

{if(i==1)

{cout << "1" << endl;}

else

{for(int j=1;j<=i;++j)

{if(j!=i)

a[j]=b[j-1]+a[j];

else

a[j]=1;

if(j!=i)

cout << a[j] << " ";

else

cout << a[j] << endl;}

}

for(int j=1;j<=i;++j)

{b[j]=a[j];

}

}

cout << endl;}

return 0;}

标签:总结,11.28,cout,int,汉字,else,include,公因数,刷题
来源: https://blog.csdn.net/weixin_44746864/article/details/121600513