1
2
#include <bits/stdc++.h>
using namespace std;
int a,s1=0,s2=0;
int main(){
while(1){
cin >> a;
if(a==1){
s1++;
}
if(a==0){
s2++;
}
if(a==-1){
break;//跳出循环
}
}
if(s1>s2){
cout << "Yes" << endl;
}
if(s2>s1){
cout << "No" << endl;
}
if(s1==s2){
cout << "Tie" << endl;
}
cout << s1 << ":" << s2;
return 0;
}
2
方法一
#include <bits/stdc++.h>
using namespace std;
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
string s;
int n,m;
int main(){
getline(cin,s);
scanf("%d - %d",&n,&m);
cout << s << endl;
for(int i=n;i<=m;i++){
int x=i,sum=0;
while(x){
sum=sum*10+x%10;
x/=10;
}
if(sum==i){//先判断是否是回文数
int mon=i/100%100;//获取到月份
int day=i%100;//获取到日
if(mon>=1 && mon<=12){
if(day>=1 && day<=a[mon]){
cout << i << endl;
}
}
}
}
return 0;
}
方法二
#include <bits/stdc++.h>
using namespace std;
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//每个月对应的天数
int b[10010];//定义一个数组用来保存满足条件的日期
int n,m,cnt=0;//n代表出生日期,m代表结束日期,cnt作为索引
string s;//定义变量s用来保存输入的名字
int main(){
getline(cin,s);
scanf("%d - %d",&n,&m);//以格式化的方式进行输入,这样保证可以随时获取数据
cout << s << endl;
for(int i=1;i<=12;i++){// i代表月份
for(int j=1;j<=a[i];j++){//j代表每个月的天数
int x=(i%10)*10+i/10;//x---月份翻转
int y=(j%10)*10+j/10;//y---日期翻转
int t=y*1000000+x*10000+i*100+j;//得到翻转后的数据
if(t>=n && t<=m) b[++cnt]=t;
}
}
for(int i=1;i<=cnt;i++){
cout << b[i] << endl;
}
return 0;
}
3
#include <bits/stdc++.h>
using namespace std;
string s;
int cnt=0;//定义变量实现计数
int main(){
getline(cin,s);
int i=0;//索引
while(i<s.size()){
if(s[i]!='6') cout << s[i];
else{
cnt++;
while(s[i+1]=='6'){
cnt++;i++;
}
if(cnt<=3){
for(int i=1;i<=cnt;i++){
cout << '6';
}
}
else if(cnt<=9) cout << '9';
else cout << 27;
}
i++;cnt=0;
}
return 0;
}
4
#include <bits/stdc++.h>
using namespace std;
int n,a,s1=0,s2=0,x1,x;//正整数n,a是循环输入保存数据的变量,s1是用来保存第一次的
//累加和的结果,s2用来依次统计后边的累加和,判断和第一次是否相同
bool f=false;//用来做标记,判断是输出NO还是累加和
int main(){
cin >> n;
bool k[n];//用来保存f每次的取值
int g[n];//用来保存每次s2的取值,如果条件不成立取0
for (int i=0;i<n;i++){//循环n次
f=false;//每次初始化f的取值
cin >> a;//输入数据
s1=0;//初始化
x1=a*2;
while(x1!=0){//获取每个位置上数据的累加和
s1=s1+x1%10;
x1=x1/10;
}
for(int h=3;h<=9;h++){//3-9的乘积的数字各个位置上数据的累加和
x=a*h;
s2=0;
while(x != 0){
s2=s2+x%10;
x=x/10;
}
if(s2!=s1){//判断累加和是否相同,如果不同则f==true
f=true;
break;//跳出循环
}
}
k[i]=f;//将当前f的取值保存到数组中
if(f==true){//如果不是不变初心数
g[i]=0;//g[i]数组中保存数据0
}
else{
g[i]=s2;//g[i]中添加当前s2的数据
}
}
for(int j=0;j<n;j++){//循环生成索引获取数组中的每一个数
if(k[j]==true){//如果k数组中的值为true
cout << "NO" <<endl;//输出NO
}
else{
cout << g[j] << endl;//输出数组g中的数值
}
}
return 0;
}