博文

不用递归和循环输出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;
} ......

阅读全文(6016) | 评论: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......

阅读全文(5250) | 评论:2

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;
} ......

阅读全文(6108) | 评论:0

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......

阅读全文(4889) | 评论:0

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<......

阅读全文(4777) | 评论:3

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<<" ";......

阅读全文(5404) | 评论:0

C++吧第四界编程大赛.(题目)(2005-12-08 13:19:00)

摘要:统计字母个数:
程序输入一个字符串(长度不超过100),全是小写字母.
统计小写字母出现的次数,并用要求的图表示出来.
测试数据:

Input:
sadjhasdhqwpopeepomcxnnbladkjkfjasjas

Output:
@
@                 @                 @
@     @           @           @     @
@     @ @     @   @ @     @ @ @     @
@ @ @ @ @ @   @   @ @ @ @ @ @ @ @   @       @ @
a b c d e f g h&......

阅读全文(5457) | 评论:1

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......

阅读全文(5051) | 评论:0

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;
}......

阅读全文(5024) | 评论:0

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......

阅读全文(4699) | 评论:0