初级C语言

用C语言求1到n之间能被3整除,且至少有一位数字为5的所有数之和。

#include<stdio.h>
#include<conio.h>

int IsNum(int n)
{
bool flag=false;
if(n%3!=0)return 0;
while(n>0)
{
if(n%10==5)
{
flag=true;
break;
}
n=n/10;
}
if(flag)return n;
else return 0;
}

void main()
{
int sum=0;
int n;
printf("请输入要计算项数:");
scanf("%d",&n);

for(int i=2;i<=n;i++)
{
sum = sum + IsNum(i);
}
printf("1至%d: %d\n",n,sum);
getch();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-02
#include "stdio.h"
int main()
{
int n;
int s = 0;
int num;
int flag = 0;
printf("请输入n:");
scanf("%d",&n);
for(int i=1;i<= n;i++)
{
int temp = i;
if (temp%3 == 0)
{
for (int j=0;j<20;j++)
{
num = temp %10;
if (num == 5)
{
flag = 1;
}
if (temp<10)
{
break;
}
temp = temp / 10;
}
if (flag ==1)
{
s += i;
flag = 0;
printf("%d \n",i);
}
}

}
printf("总和为:%d\n",s);
return 0;
}
第2个回答  2008-04-02
#include<stdio.h>
int main()
{ int n,j,s;
int find5(int);
printf("输入一个数:");
scanf("%d",&n);
s=0;
for(j=1;j<=n;j++)
if((j%3==0)&& find5(j))s+=j;
printf("被3整除且含5的数和为:%d",s);
return 0;
}

int find5(int n)
{ int i,m=0;
for(i=0;n!=0;i++)
(n%10==5)?m=1,n/=10:n/=10;
return m;
}
第3个回答  2008-04-02
将得到的数转换为字符串,再使用查找子串的函数就很容易搞定了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网