2032:杨辉三角
当 j=0 时;位置(i,j)=1
当 j=i+1 时;(i,j)=0
其余位置:(i,j)=(i-1,j-1)+(i-1,j);
#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
int a[n][n+1];//设一个n*(n+1)大小的二维数组
for(int i=0,k=1;i<n;i++,k++){
a[i][0]=1;//每行第一个元素取值为1
a[i][k]=0;//每行最后一个元素后面再增加一个为零的元素
}
for(int i=1;i<n;i++)
for(int j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j]; // (i,j)=(i-1,j-1)+(i-1,j)
for(int i=0;i<n;i++)
{
int j;
for(j=0;j<=i;j++)
if(j==i)
cout<<a[i][j]<<endl;
else
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
2040:直接统计从1到n-1的约数的和即可
#include<iostream>
using namespace std;
int main(){
int M,n,m;
cin>>M;
while(M--){
int sum1=0,sum2=0;
cin>>n>>m;
for(int i=1;i<n;i++)
{
if(n%i==0)
sum1+=i;
}
for(int i=1;i<m;i++)
{
if(m%i==0)
sum2+=i;
}
if(sum1==m&&sum2==n)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
2042:和猴子吃桃一个道理
#include<iostream>
using namespace std;
int main(){
int n,a;
cin>>n;
while(n--){
cin>>a;
int s=3;
for(int i=1;i<=a;i++)
s=(s-1)*2;
cout<<s<<endl;
}
return 0;
}
2055:A=a-32 A-64=1
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
char ch;
int m;
cin>>ch>>m;
int s;
if(ch>='A'&&ch<='Z')
s=m+ch-64;
else if(ch>='a'&&ch<='z')
s=m-ch+96;
cout<<s<<endl;
}
return 0;
}
2072:寻找句子中不同单词的个数
使用set集合(无重复插入即二义性的特点)
#include<iostream>
#include<string>
#include<set>
using namespace std;
int main() {
string s;
while (getline(cin, s)) {
set<string> t;
if (s == "#")
break;
string str = "";
for (int i = 0; i < s.size(); i++)
{
int f = 0;
while (s[i] >= 'a' && s[i] <= 'z')
{
str += s[i];
i++;
f++;
}
if (f != 0)
{
t.insert(str);
str = "";
}
}
cout << t.size() << endl;
t.clear();
}
return 0;
}