神奇数编程
Ⅰ 神经网络编程到底有多神奇
神经网络算法,通过一次次地训练来调节神经节点的连接权重,能够有效地进行模式识别。
比如电脑可以快速分辨出
00000000
和
00000O00
之间内容不同。
但是却很难认为找茬游戏的两张图片是相似图片。
使用神经网络,可以瞬间识别出两张图片的相似程度(需要用其中一张长期训练)。
总而言之,神经网络算法给了程序模式识别的能力。
Ⅱ c语言编程 100到2011其中一位含5的数
呵呵,方法有多种,我给一种用函数实现的。
#include <stdio.h>
int IsHas5(int n)
{
do
{
if(n%10 == 5)
{
return 1;
}
n /= 10;
} while(n);
return 0;
}
main()
{
int i;
int num=0;
for(i=100; i < 2011; i++)
{
if(IsHas5(i))
{
printf("%-6d ",i);
num++;
if(num & 10 == 0) // 一行显示10个
{
printf("\n");
}
}
}
printf("\n共有%d个这样的数!\n",num);
}
Ⅲ 用C语言编程求100~200之弦数的个数(参考答案77)
程序代码:
#include<stdio.h>
void main()
{
long a,b,c,n=0;
int arr[201],i;
for (i=100;i<=200;i++) arr[i]=0;
for (a=1;a<=200;a++)
for (b=a+1;b<=200;b++)
for (c=100;c<=200;c++)
{
if (a*a+b*b==c*c)
{
n++;
arr[c]=1;
printf("%ld %ld^2=%ld^2+%ld^2 ",n,c,a,b);
}
}
n=0;
for (i=100;i<=200;i++)
{
if (arr[i])
{
n++;
printf("%d ", i);
}
}
printf(" total %d ",n);
}
执行成功,扫描出了77个玄数,但是剔除重复后只有55个,执行结果如下:
i:ToolsTC2>noname.exe
1 113^2=15^2+112^2
2 145^2=17^2+144^2
3 181^2=19^2+180^2
4 101^2=20^2+99^2
5 122^2=22^2+120^2
6 145^2=24^2+143^2
7 170^2=26^2+168^2
8 123^2=27^2+120^2
9 100^2=28^2+96^2
10 197^2=28^2+195^2
11 130^2=32^2+126^2
12 183^2=33^2+180^2
13 125^2=35^2+120^2
14 111^2=36^2+105^2
15 164^2=36^2+160^2
16 104^2=40^2+96^2
17 150^2=42^2+144^2
18 125^2=44^2+117^2
19 117^2=45^2+108^2
20 102^2=48^2+90^2
21 148^2=48^2+140^2
22 195^2=48^2+189^2
23 175^2=49^2+168^2
24 130^2=50^2+120^2
25 149^2=51^2+140^2
26 173^2=52^2+165^2
27 143^2=55^2+132^2
28 106^2=56^2+90^2
29 119^2=56^2+105^2
30 200^2=56^2+192^2
31 185^2=57^2+176^2
32 100^2=60^2+80^2
33 109^2=60^2+91^2
34 156^2=60^2+144^2
35 185^2=60^2+175^2
36 105^2=63^2+84^2
37 136^2=64^2+120^2
38 169^2=65^2+156^2
39 110^2=66^2+88^2
40 130^2=66^2+112^2
41 115^2=69^2+92^2
42 182^2=70^2+168^2
43 120^2=72^2+96^2
44 153^2=72^2+135^2
45 170^2=72^2+154^2
46 125^2=75^2+100^2
47 195^2=75^2+180^2
48 130^2=78^2+104^2
49 178^2=78^2+160^2
50 116^2=80^2+84^2
51 170^2=80^2+150^2
52 135^2=81^2+108^2
53 140^2=84^2+112^2
54 159^2=84^2+135^2
55 157^2=85^2+132^2
56 145^2=87^2+116^2
57 137^2=88^2+105^2
58 187^2=88^2+165^2
59 150^2=90^2+120^2
60 155^2=93^2+124^2
61 193^2=95^2+168^2
62 146^2=96^2+110^2
63 160^2=96^2+128^2
64 165^2=99^2+132^2
65 195^2=99^2+168^2
66 145^2=100^2+105^2
67 170^2=102^2+136^2
68 185^2=104^2+153^2
69 175^2=105^2+140^2
70 180^2=108^2+144^2
71 185^2=111^2+148^2
72 190^2=114^2+152^2
73 195^2=117^2+156^2
74 169^2=119^2+120^2
75 174^2=120^2+126^2
76 200^2=120^2+160^2
77 194^2=130^2+144^2
100 101 102 104 105 106 109 110 111 113
115 116 117 119 120 122 123 125 130 135
136 137 140 143 145 146 148 149 150 153
155 156 157 159 160 164 165 169 170 173
174 175 178 180 181 182 183 185 187 190
193 194 195 197 200
total 55
Ⅳ 求c语言编程,求任意数各位数之和
注意:最大数据范围
#include<stdio.h>
int main()
{
unsigned long int a=0;
int tmp=0,tag=0;
scanf("%d",&a);
while(tag==0)
{
tmp+=a%10;
if(a/10==0)
{
tag=1;
}
a=a/10;
}
printf("\n%d\n",tmp);
}
Ⅳ C++编程: 神秘数问题
x=1000*a[0]+100*a[1]+10*a[2]+a[3];错了,注意数组a是字符类型,而x是整形!在把数组a转换成整数的时候注意减掉'0'。采纳,谢谢!
Ⅵ 完美数 C语言编程
1、因子不包含数本身。所以for循环条件应该是小于2、在判断每个数前没有初始化sum。所以在外循环后面加上sum=13、不是每判断一个数都要换行,而是在有效数的时候才进行。所以移换行语句到判断语句内 代码如下,已测试通过:void main()
{
int j,i,sum=1;
for(i=6;i<=1000;i++)
{
for(j=2;j<i;j++)
if((i%j)==0)
sum+=j; if(i-sum==0)
{
printf("%d its factors are 1",i);
for(j=2;j<i;j++)
if((i%j)==0)
printf(" %d",j); printf("\n");
}
sum=1;
}
getchar();
}。。。望采纳
Ⅶ C++编程:High数
以下程序通过测试. #include <iostream> #include <cmath> using namespace std; int fun(int n) { int num=0,t; while(n!=0) { t=n%2; if(t==1) ++num; n/=2; } return num; } int main() { int n,i,j,t,m,num; cin>>n; for(i=0;i<n;++i) { cin>>m; num=0; t=pow(2,m-1); for(j=t;j<=2*t-1;++j) num+=fun(j); cout<<num<<endl; } return 0; }
Ⅷ 循环数(circle)C语言编程
#include<stdio.h>
intIsCircle(intn)//判断n是不是循环数
{
intcir[6],cirtemp[6];//本题中输入最大为6位数
inti=0,j,k=0,count=0;
while(n>0)//把n的每一位一次放入数字cirtemp中(反序)
{
count++;//计数
cirtemp[i++]=n%10;
n=n/10;
}
for(i=0;i<count;i++)//把顺序还原回来(直接用反序也可以,只是还原回看后面的代码会好理解些)
cir[i]=cirtemp[count-i-1];
for(i=0;i<count;i++)//是几位数总共就要循环几次
{
j=cir[k];//向前右j步
k=(k+j)%count;//走完后的下标
}
if(k==0)//循环完刚好回到第一个数,这个数是循环数
return1;
else
return0;
}
intmain()
{
intn,i=0;
printf("请输入一个数(9<这个数<999589): ");//按题意这行可以删去
scanf("%d",&n);
while(1)
{
if(IsCircle(n+i)==1)
{
printf("%d ",n+i);
break;
}
elseif(IsCircle(n-i)==1)
{
printf("%d ",n-i);
break;
}
i++;
}
return0;
}
严格来说我这个程序还不严谨,IsCircle中判断k是否遍历了0,1,2,……count这些自然数来判断是否是循环数更准确,毕竟可能会有巧合使得循环完后回到了第一个数(下标k=0)但是却在中途有一个数没有作为起点和终点(只是觉得有可能,具体是否可能需要证明)。
其实也不难把k的每一个值都加起来如果=1+2+3+……+count,且最后k=0就可以了
还有就是输入的时候最好判断一下输入是否规范 9<数<999589