1.奇偶分家:给定N
个正整数,请统计奇数和偶数各有多少个?
#include <iostream>
using namespace std;
int main()
{
int n,m,i,j=0,k=0;
cin>>n;
for(i=0;i<n;i++)
{
cin>>m;
if(m%2==0) j++;
else k++;
}
cout<<k<<' '<<j;
}
2.大笨钟:
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。
下面就请你写个程序,根据当前时间替大笨钟敲钟。
#include <iostream>
#include <algorithm>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
string c;
int i,j,k,m,n;
//cin>>n>>c>>m;
scanf("%d:%d",&n,&m);
if(n==24)
{
n=0;
}
if(n>=0&&n<=12)
{
if(n==12&&m>0)
{
for(i=1;i<=1;i++) cout<<"Dang";
}
else
{
printf("Only %02d:%02d. Too early to Dang.",n,m);
}
}
else
{
if(m>0)
{
for(i=1;i<=n-12+1;i++)
{
cout<<"Dang";
}
}
else
{
for(i=1;i<=n-12;i++)
{
cout<<"Dang";
}
}
}
return 0;
}
3.个位数统计:给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。
#include <bits/stdc++.h>
#include <algorithm>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
string c;
int i,j,k;
int a[10]={0,0,0,0,0,0,0,0,0,0};
cin>>c;
for(i=0;i<c.size();i++)
{
for(j=0;j<=9;j++)
{
if((c[i]-'0')==j)
{
a[j]++;
}
}
}
for(i=0;i<=9;i++)
{
if(a[i]>0)
{
cout<<i<<':'<<a[i]<<endl;
}
}
return 0;
}
3.到底有多二 :一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336
是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。
#include <bits/stdc++.h>
#include <algorithm>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
char c[52]={0};
int i=0,k=0,p;
float m=1;
cin>>c;
int t=strlen(c);
if(c[0]=='-')
{
p=t-1;
m*=1.5;
if(c[t-1]%2==0) m=m*2.0;
}
else
{
p=t;
if(c[t-1]%2==0) m=m*2.0; //无论有‘-’还是没有,它的第一个数组a【0】不是负号就是数字,所以最后一个数组的数组位都是n-1
}
for(i=0;i<t;i++)
{
if(c[i]=='2') k++;
}
m*=k*1.0/p;
printf("%.2f%%",m*100);
return 0;
}