正文

C++吧第三界编程大赛.(其它算法)2005-12-08 12:47:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/7992.html

分享到:

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<<"请输入数列内容:"<<endl;  for(int i=0;i<limit;i++)  cin>>a[i];  cout<<"请输入您要测试的数:"<<endl;  cin>>num;  }  int game2(int i,int j)//某一种组合  {int sum=0,b;  for(b=i;b<=j;b++)  sum+=a[b];  return sum;  }  int game1() //算次数的函数能调用game2吗?  {int i,j,sum=0,n=0;  for(i=0;i<n;i++)  for(j=i;j<n;j++)  {sum=game2(i,j);  if(sum%num==0)n++;  }  return n;  } }Jokemon;//帅气吗? Jokemon theGreatone;//编程也要作广告! int main() {int n=theGreatone.game1();  cout<<"可以整除的线性组合一共有"<<n<<"个!\a"<<endl;  cout<<"欢迎您再次运行,请按回车键退出!"<<endl;//我编程讲究人性化!  cin.get();  return 0; } 59.72.33.* : #include <iostream.h> int fun1(int,int); void main() { int m,n; int x=0; int num=0; int a[2000]; //数组大小根据需要选择 int sum[2000]={0};/*数组大小根据需要选择???为什么我一开始没有初始化,我验证 6,7   9 8 7 6 5 4 就会出现错误呢?*/ cout<<"plesae input n and m:"<<endl; cin>>n>>m; cout<<"please input n numbers:"<<endl; for(int l=0;l<n;l++) { cin>>a[l]; } for(int k=0;k<n;k++)  for(int i=k;i<n;i++)  {  for(int j=k;j<=i;j++)  {  sum[x]=sum[x]+a[j];  } num=num+fun1(sum[x],m); x++;  }  cout<<"jieguoshi:"<<num<<endl; } int fun1(int x,int y) { if(x%y==0) return 1; else return 0; } 58.49.171.* (@@@@@@): #include<iostream.h> #include<stdlib.h> #include<time.h> int main() { int n,m,i; cout<<"Input the number of n(1-10000) and m(1-5000)"<<endl; cin>>n>>m; int *p=new int[n]; srand(time(NULL)); for(i=0;i<n;i++) { p[i]=rand(); cout<<p[i]<<" "; } cout<<endl; int j,k=1,sum=0,flag=0; while(k<=n) { for(i=0;i<=n-k;i++) { for(j=i;j<k+i;j++) { sum+=p[j];   } if(sum%m==0)  flag++;  sum=0; } k++; } cout<<flag<<endl; return 0; } 我的方法比较傻,请吧主给提供个简便的算法供我们学习学习! 222.20.14.* : // 我也来贡献一个 #include <iostream> using namespace std ; void main() {  int a[10001], n, m, i, j, total=0 ;  cin >> n >> m ;  a[0]=0 ;  for (i=1 ; i<=n ; ++i) {  cin >> a[i] ;  a[i]+=a[i-1] ;  }  for (i=1 ; i<n ; ++i)  for (j=0 ; j<i ; ++j)  if ((a[i]-a[j])%m==0)  ++total ;  cout << total << endl ; }

阅读(5304) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册