用c++怎么编程这一题?
#include<iostream>
using namespace std;
int fun(int x)
{
int sum=0,t=0;
t=x;
while(t)
{
sum+=t%10;//各个位上的数累加
t/=10;
}
if(x%11==0&&sum==13)
return 1;
else
return 0;
}
int main()
{
int sum=0;
for(int i=1;i<=1000;i++)
{
if(fun(i)==1)
{
sum++;
cout<<i<<" ";
if(sum%5==0)//sum计数,同时sum是5的倍数换行;
cout<<endl;
}
}
cout<<endl;
cout<<"满足条件的个数为:"<<sum<<endl;
return 0;
}
void fun(int,int&,int *); /* 第1个参数传递要判断的数,第2个参数通过引用类型变量带回该数是否是11的倍数(是为1,不是为0),第3个参数通过指针类型变量带回该数各位数字之和*/
在主函数中调用上述函数,按每行5个的形式输出满足条件的数,并输出满足条件数的个数。
#include<iostream>
using namespace std;
int FindNumber(int a[]);
int main()
{
int i,j;
int a[100];//用来存储找到的数字
j=FindNumber(a);
for (i=1;i<=j;i++)
{
printf(" %d ",a[i-1]);
if(i%5==0)
printf("\n");
}
return 0;
}
int FindNumber(int a[])
{
int i,j,k=0,sum;
for(i=0;i<1000;i++)
{
if(i%11==0)
{
sum=0;
for(j=i;j!=0;j=j/10)
{
sum+=j%10;
}
if(sum==13)
{
a[k]=i;
k++;
}
}
}
return k;
}
请问那个每行输出5个数据是怎么弄的?
for( i=1; i<= j; i++){ cout<<a[ i-1]); if( i%5==0) cout<<endl;}