正文

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

阅读(5056) | 评论(0)


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

评论

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