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;
}
帅哥们,我就是那个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 ;
}
评论