今日三题(仅供自己学习)
2029.Palindromes _easy version
第一个和最后一个比,第二个和倒数第二个比
#include <iostream>
#include<string>
using namespace std;
int main(){
int n,i,k,flag;
string s;
cout<<"请输入个数:\n"<<endl;
cin>>n;
while(n--){
cin>>s;
k=s.length(); //s.size()
flag=1;
for(i=0;i<k;i++){
if(s[i]!=s[k-1]) //注意最后一个的下标
flag=0;
k--;
}
if(flag==0)
cout<<"no"<<endl;
if(flag==1)
cout<<"yes"<<endl;
}
return 0;
}
2030.汉字统计
1.把显示的字符除去得汉字 。注意计算机汉字用两个字节表示
#include <iostream>
#include<cstring>
using namespace std;
int main(){
int n,i,k;
char s[100];
cin>>n;
getchar();
while(n--){
int count=0;
gets(s);
k=strlen(s);
for(i=0;i<k;i++){
if((s[i]<32)||(s[i]>126)) //ASCII码能显示出来的字符
count++;
}
cout<<count/2<<endl;
}
return 0;
}
2.相当于汉字的ASCII码<0
-
英文标准的ASCII码中只有128个符号,只需要7位,但是计算机分配存储的最基本单位是字节,至少是8位,因此最高位为0;因此常见的西文符号的ASCII都是在0-127之间,无论是有符号还是无符号去观察它们,都是正的。
-
中文的符号远超过256个,因此用一个字节不能存储汉字,早期的GB2312采用了两个字节。但是很麻烦的问题是一个汉字用两个字节存储在计算机中后,和两个西文字母的ASCII混淆,为了避免这个混淆,汉字两个字节的最高位都是1。如果用有符号的数去读取一个汉字的内容,最高位的1正好和负号位置相同,因此此时就会发现汉字的内吗是负的。
实质上汉字应该用字符型而不是整型去读取和显示它。
#include <iostream>
#include<cstring>
using namespace std;
int main(){
int n,i,k;
char s[100];
cin>>n;
getchar();
while(n--){
int count=0;
gets(s);
k=strlen(s);
for(i=0;i<k;i++){
if(s[i]<0)
count++;
}
cout<<count/2<<endl;
}
return 0;
}
2032.杨辉三角
#include <iostream>
using namespace std;
int main(){
int n,i,j,a[100][100];
cin>>n;
for(i=0;i<n;i++){
for(j=0;j<=i;j++){
if(j==0||i==j)
a[i][j]=1; //首末位置为1
else
a[i][j]=a[i-1][j-1]+a[i-1][j]; //找位置规律
cout<<a[i][j]<<endl;
}
cout<<'\n'<<endl;
}
cout<<'\n'<<endl;
return 0;
}
每天的小愿望就是希望能够有进步。
八月了,继续加油。
p:汉诺塔问题
#include<stdio.h>
void move(int n,char a,char b,char c){
if(n==1)
printf("a->c");
else{
move(n-1,a,c,b);
printf("a->c");
move(n-1,b,a,c);
}
}
void main(){
int n;
scanf("%d",&n);
move(n,'a','b','c');
}
今天的文章八月你好_我们八月见pdf分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85155.html