今天做了老师给的题目有几道题很有意思。
代码
代码题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
void quanzi(int *pa,int n)
{
int i,b=0,c;
c=n;
for(i=0;i<n;i++)
{
pa[i]=i+1;
}
for(i=0;;i++)
{
if(i==n)
i=0;
if(pa[i]!=0)
b++;
else
continue;
if(b%3==0)
{
pa[i]=0;
c--;
}
if(c==1)
break;
}
for(i=0;i<n;i++)
{
if(pa[i]!=0)
printf("%d\n",pa[i]);
}
}
int main2()
{
int a[100];
int n;
printf("qing shu ru: ");
scanf("%d",&n);
quanzi(a,n);
}
代码题目:一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
void yinzi(int n,int i)
{
int sum;
for(n=2;n<1000;n++)
{
sum=1;
for(i=2;i<n;i++)
{
if(n%i==0)
{
sum+=i;
}
}
if(sum==n)
{
printf("%d its factors are: ",n);
for(i=1;i<n;i++)
{
if(n%i==0)
{
printf("%d",i);
}
}
printf("\n");
}
}
}
int main1()
{
int n;
int i;
yinzi(n,i);
return 0;
}
总结
这两题是开头的两题我感觉很有意思,解题的思路有很多。这两题我用了很长的时间去想解题的思路,然后再结合网上写程序的步骤才写出了这两题。我感觉我有的时候思路是有了但是不会写这个程序,这就让我很烦恼,但经过辅导的建议之后,我觉的明天多打一些程序是必要的。