问题 1431: [蓝桥杯][2014年第五届真题]分糖果
时间限制: 1Sec 内存限制: 128MB 提交: 1555 解决: 864
题目描述
问题描述
有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
每个小朋友都把自己的糖果分一半给左手边的孩子。
一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
输入
程序首先读入一个整数N(2< N< 100),表示小朋友的人数。
接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
输出
要求程序输出一个整数,表示老师需要补发的糖果数。
样例输入
3 2 2 4
样例输出
4
#include<iostream>
using namespace std;
int n;
int a[105];
int is_equal(){
for(int i=0;i<n-1;i++)
if(a[i]!=a[i+1])
return 0;
return 1;
}
int main(){
cin>>n;
int ans=0;
for(int i=0;i<n;i++)
cin>>a[i];
while(1){
if(is_equal()) break;
for(int i=0;i<n;i++){
if(a[i]%2==1){
ans++;
a[i]++;
}
a[i]/=2;
}
int k=a[0];
for(int i=0;i<n-1;i++) {
a[i]+=a[i+1];
}
a[n-1]+=k;
}
printf("%d\n",ans);
return 0;
}
问题 1434: [蓝桥杯][历届试题]回文数字
时间限制: 1Sec 内存限制: 128MB 提交: 2107 解决: 907
题目描述
观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
本题要求你找到一些5位或6位的十进制数字。满足如下要求:
该数字的各个数位之和等于输入的整数。
输入
一个正整数 n (10< n< 100), 表示要求满足的数位和。
输出
若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
如果没有满足条件的,输出:-1
样例输入
44
样例输出
99899 499994 589985 598895 679976 688886 697796 769967 778877 787787 796697 859958 868868 877778 886688 895598 949949 958859 967769 976679 985589 994499
#include<stdio.h>
int main() {
int n,flag=0;
scanf("%d",&n);
for(int i=1;i<=9;i++){
for(int j=0;j<=9;j++){
for(int k=0;k<=9;k++){
if(2*i+2*j+k==n){
printf("%d%d%d%d%d\n",i,j,k,j,i);
flag=1;
}
}
}
}
for(int i=1;i<=9;i++){
for(int j=0;j<=9;j++){
for(int k=0;k<=9;k++){
if(2*(i+j+k)==n){
printf("%d%d%d%d%d%d\n",i,j,k,k,j,i);
flag=1;
}
}
}
}
if(flag==0) printf("-1\n");
return 0;
}
这两题是昨天晚上写的,本来想做完第三题一起记录,但是还是没有来得及。今天补上。