博文
不用递归和循环输出1到任意一个3的N次方的数(2005-12-23 16:06:00)
摘要:有人能吗?
比如N=3,则输出1,2,3,4,5,6,7,8,9
N=4, 输出1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21......
应该是用宏定义实现吧?
不过怎么实现任意输入N,我就不会了,汗
#include<stdio.h>
#define A(n) n;n;n; //宏定义,3个连续语句
int main()
{
int a=1;
A(A(A(printf("%d ",a++)))); //3次方就用3个A()
return 0;
} ......
C++吧第五界编程大赛.(题目) (2005-12-14 15:02:00)
摘要:资源分配问题。
甲 乙 丙
0 0 0 0
1 3 5 4
2 7 10 6
3 9 11 11
4 12 11 12
5 13 11 12
上面的表表示:
甲(0,3,7,9,12,13)
分1台机器给甲,甲可以带来3的利润
分2台机器给甲,甲可以带来7的利润
分3台机器给甲,甲可以带来9的利润
...
乙,丙也是同样的解释。
现在的问题就是现在总共只有5台设备。
怎样分配才可以使总的利润最大.
经分析表明:分0台给甲,2台给乙,3台给丙可以使利润最大.(0+10+11=21)
现在的任务就是输入上面的数据,输出使总利润最大的方案。
如果有多种情况的时候随便输出一组
(本数据中{2,2,1}也可以使利润达21)
输入格式为:
n m
再输入n+1行数据,每组m列
Input:
5 3
0 0 0
3 5 4
7 10 6
9 11 11
12 11 12
13......
C++吧第四界编程大赛.(冠军程序)(2005-12-14 14:41:00)
摘要:19(222.22.84.*)
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
void main()
{
char str[100];
cout<<"请输入一小写字母串:"<<endl;
cin>>str;
char *p=str;
int Num[26]={0};
while(*p!='\0')
{
if(!(*p>='a'&&*p<='z'))
{
cout<<"错误!"<<endl;
return;
}
Num[(*p-'a')]++;
p++;
}
int i,j;
int Max=Num[0];
for(i=0;i<26;i++)
{
if(Num[i]>Max)
Max=Num[i];
}
cout<<"输出结果:"<<endl;
for(i=0;i<Max;i++)
{
for(j=0;j<26;j++)
{
if(Num[j]+i>=Max)
cout<<"@"<<setw(3);
else
cout<<" "<<setw(3);
}
cout<<endl;
}
for(i=0;i<26;i++)
cout<<(char)('a'+i)<<setw(3);
cout<<endl;
} ......
C++吧第四界编程大赛.(其他人输出)(2005-12-14 14:39:00)
摘要:3
@
@ @ @
@ @ @ @ @
@ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
a b c d e f g h i j k l m n o p q r s t u v w x y z
4
@
@ @ @
@ @ @ @ @
@ @@ @ @@ @@@ @
@@@@@@ @ @@@@@@@@ @ @@
abcdefghijklmnopqrstuvwxyz
5
@
@ @ @
@ @ @ @ @
@ @@ @ @@ @@@ @
@@@@@@ @ @@@@@@@@ @ @@
abcdefghijklmnopqrstuvwxyz
8
@
@ @ @
@ @ @ @ @
@ @@ @ @@ @@@ @
@@@@@@ @ @@@@@@@@ @ @@
abcdefghijklmnopqrstuvwxyz
13
@
@
@ @
@ @ @
@ @ @ @ @ @
@ @ @ @ @ @ @
@ @ @ @ @ @ @
@ @@ @ @ @ @@ @ @
@@@@ @ @@@@ @@@ @ @@ @
abcdefghijklmnopqrstuvwxyz
14
sadj......
C++(70764321)(2005-12-10 15:06:00)
摘要:#include <iostream.h>
#include <string.h>
int fun(char a)
{
int sum=0;
int b=(int) a;
while(b)
{
if(b%2==1)
sum++;
b=b/2;
}
return sum;
}
int main()
{
char s[100],last;
int i,j;
int small,sum,dif,total,flag;
small=sum=dif=total=0;
last='a';
cin>>s;
for(i=0;i<strlen(s);i++)
{
if(s[i]>='a' && s[i]<='z')
{
flag=0;
small++;
sum+=(int)s[i];
if(s[i]>last)
last=s[i];
for(j=0;j<i;j++)
if(s[i]==s[j])
{
flag=1;
break;
}
if(flag==0)
dif++;
}
total+=fun(s[i]);
}
cout<<small<<endl;
cout<<sum<<endl;
cout<<(int)last<<endl;
cout<......
C++吧第四界编程大赛.(参考算法)(2005-12-09 10:46:00)
摘要:#include <iostream.h>
#include <string.h>
int main()
{
int a[20][26],b[26];
char s[100];
int i,j;
int max=0;
char ch;
for(i=0;i<20;i++)
for(j=0;j<26;j++)
a[i][j]=0;
for(i=0;i<26;i++)
b[i]=0;
cin>>s;
for(i=0;i<strlen(s);i++)
b[s[i]-'a']++;
for(i=0;i<26;i++)
for(j=19;j>=b[i];j--)
a[j][i]=1;
for(i=0;i<26;i++)
if(b[i]>max)
max=b[i];
for(i=max-1;i>=0;i--)
{
for(j=0;j<26;j++)
{
if(a[i][j]==1)
cout<<" ";
else
cout<<"@ ";
}
cout<<endl;
}
for(i=0;i<26;i++)
{
ch='a'+i;
cout<<ch<<" ";......
C++吧第四界编程大赛.(题目)(2005-12-08 13:19:00)
摘要:统计字母个数:
程序输入一个字符串(长度不超过100),全是小写字母.
统计小写字母出现的次数,并用要求的图表示出来.
测试数据:
Input:
sadjhasdhqwpopeepomcxnnbladkjkfjasjas
Output:
@
@ @ @
@ @ @ @ @
@ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
a b c d e f g h&......
C++吧第三界编程大赛.(其它算法)(2005-12-08 12:47:00)
摘要:Soningwl :
#include<iostream.h>
int main()
{
cout<<"请输入序列长度(<=10000)与约数(<=5000)。\n";
int n,m,counter=0;
cin>>n>>m;
int a[10000];
cout<<"请输入"<<n<<"个数:";
for(int i=0;i<n;i++)cin>>a[i];
for(int j=0;j<n;j++){
int sum=0;
for(int k=j;k<n;k++){
sum+=a[k];
if(sum%m==0)counter++;
}
}
cout<<counter<<"\n";
return 0;
}
nowUbeing :
帅哥们,我就是那个Jokemon,为成为世界第一游戏设计者而努力!我学C++不到3月,类看了还不到2周,但我也想试试!希望高手点评点评!谢!
#include <iostream>
using namespace std;
#include <cstdio0>
typedef class theFirstGameDesigneriintheworlld //没见过这长的名吧
{int limit,a[10000],num;
public:theFirstGameDesigneriintheworlld()//构造函数
{cout<<"请输入数列长度:"<<endl;
cin>>limit;
cout<<"请输入数列内容:"<<end......
C++吧第三界编程大赛.(参考算法)(2005-12-08 12:43:00)
摘要:#include <iostream.h>
int main()
{
int n,m;
int a[10000],b[5000];
int i,j;
int sum;
cin>>n>>m;
sum=0;
for(i=0;i<m;i++)
b[i]=0;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
{
sum+=a[i];
sum=sum%m;
b[sum]++;
}
sum=0;
for(i=0;i<m;i++)
sum=sum+(b[i]-1)*b[i]/2;
sum+=b[0];
cout<<sum<<endl;
}......
C++吧第三界编程大赛.(题目)(2005-12-08 12:42:00)
摘要:Partial Sums
给一个数列a1, a2, ..., an,Partial Sums被定义为:
ai+ ai+1 +...... + aj
我们要算一个给定的数列里有几个Partial Sums能整除于m.
输入数据格式为:
n m
a1 a2 a3.... an
Input:
5 4
1 2 3 4 5
6 7
9 8 7 6 5 4
Output:
2
3
解释:第一组数 4%4=0 (3+4+5)%4=0 所以输出2
第2组数 7%7=0 (8+7+6)%7=0 (9+8+7+6+5)%7= 所以输出3.
注意:
n,m可能很大(n <= 10000,m <= 5000)
编程语言C/C++
http://post.baidu.com/f?kz=69170324......