#include<stdioh>
int main()
{
int factor(int x),a,b,i;
for(a=1;a<=2000;a++)
{
b=factor(a);
if(b>a&&factor(b)==a)
printf("%d<-->%d\n",a,b);
}
return 0;
}
int factor(int x)
{
int i,sum=0;
for(i=1;i<=x/2;i++)
if(x%i==0)
sum=sum+i;
return (sum);
}
算法训练 数对
时间限制:10s 内存限制:5120MB
提交此题
问题描述
编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数。
输入格式:输入只有一行,即一个整数。
输出格式:输出有若干行,每一行是一个乘法式子。(注意:运算符号与数字之间有一个空格)
输入输出样例
样例输入
32
样例输出
1 32 = 32
2 16 = 32
4 8 = 32
8 4 = 32
16 2 = 32
32 1 = 32
#include "stdioh"
int main()
{
int n,i ;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(n%i==0)
{
printf("%d %d = %d\n",i,n/i,n);
}
}
return 0 ;
}
思路分析:
①定义变量:一个整数n,从1开始的数i;
②输入一个整数;
③for语句循环,直至整数n;用if语句进行判断n%i是否为0,如果是则输出乘法式子。
算法训练 字符删除
时间限制:10s 内存限制:5120MB
提交此题
问题描述
编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。
输入格式:输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。
输出格式:经过处理以后的字符串。
输入输出样例
样例输入
123-45-678
-
样例输出
12345678
#include<stdioh>
#include<stringh>
int main()
{
char s[20],ch;
gets(s);
scanf("%c",&ch);
int i;
for(i=0;i<strlen(s);i++)
{
if(s[i]!=ch)
{
printf("%c",s[i]);
}
}
return 0;
}
思路分析:
①定义变量:字符串(一维数组),删除字符,循环次数;
②输入字符串,删除字符;
③for语句循环(长度为字符串长度);用if语句判断是否字符是不等于删除字符,如果是则输出字符。
算法训练 整除问题
时间限制:10s 内存限制:5120MB
提交此题
问题描述
编写一个程序,输入三个正整数min、max和factor,然后对于min到max之间的每一个整数(包括min和max),如果它能被factor整除,就把它打印出来。
输入格式:输入只有一行,包括三个整数min、max和factor。
输出格式:输出只有一行,包括若干个整数。
输入输出样例
样例输入
1 10 3
样例输出
3 6 9
#include<stdioh>
int main(){
int min,max,factor;
scanf("%d%d%d",&min,&max,&factor);
int i;
for(i=min;i<=max;i++){
if(i%factor==0){
printf("%d ",i);
}
}
return 0;
}
思路分析:
①定义变量:三个整数,循环次数;
②输入三个整数;
③用for语句循环(从min起,max结束);if语句判断其中的整数是否被factor整除,如果整除,输出该数;
import media
def red_average(pic):
'''Return an integer that represents the average red of the picture
'''
total=0
for pixel in pic:
total = total + mediaget_red(pixel)
red_average = total / (mediaget_width(pic)mediaget_height(pic))
return red_average
def green_average(pic):
'''Return an integer that represents the average green of the picture
'''
total = 0
for pixel in pic:
total = total + mediaget_green(pixel)
green_average = total / (mediaget_width(pic)mediaget_height(pic))
return green_average
def blue_average(pic):
'''Return an integer that represents the average blue of the picture
'''
total = 0
for pixel in pic:
total = total + mediaget_blue(pixel)
blue_average = total / (mediaget_width(pic)mediaget_height(pic))
return blue_average
def scale_red(pic, value):
'''Return the picture that the average of the red is value which has been set
'''
averaged = red_average(pic)
factor = float(value) / averaged
for pixel in pic:
new_red = min(255, int(factor mediaget_red(pixel)))
mediaset_red(pixel,new_red)
return pic
def scale_green(pic, value):
'''Return the picture that the average of the green is value which has been set
'''
averaged = green_average(pic)
factor = float(value) / averaged
for pixel in pic:
new_green = min(255, int(factor mediaget_green(pixel)))
mediaset_green(pixel,new_green)
return pic
def scale_blue(pic, value):
'''Return the picture that the average of the blue is value which has been set
'''
averaged = blue_average(pic)
factor = float(value) / averaged
for pixel in pic:
new_blue = min(255, int(factor mediaget_blue(pixel)))
mediaset_blue(pixel,new_blue)
return pic
def expand_height(pic, factor):
'''Return a newpicture that has been vertically stretched by the factor which has been set
'''
new_width = picget_width()
new_height = picget_height()factor
newpic = mediacreate_pic(new_width, new_height, mediablack)
for pixel in pic:
x = mediaget_x(pixel)
y = mediaget_y(pixel)
newpixel = mediaget_pixel(newpic, x, yfactor)
for newpixel in newpic:
new_red = mediaget_red(pixel)
new_green = mediaget_green(pixel)
new_blue = mediaget_blue(pixel)
mediaset_red(newpixel,new_red)
mediaset_green(newpixel,new_green)
mediaset_blue(newpixel,new_blue)
return newpic
def expand_width(pic,factor):
'''Return a newpicture that has been horizontally stretched by the factor which has been set
'''
new_width = picget_width() factor
new_height = picget_height()
newpic = mediacreate_pic(new_width,new_height,mediablack)
for newpixel in newpic:
x = mediaget_x(newpixel)
y = mediaget_y(newpixel)
pixel = mediaget_pixel(pic,x / factor, y)
new_red = mediaget_red(pixel)
new_green = mediaget_green(pixel)
new_blue = mediaget_blue(pixel)
mediaset_red(newpixel,new_red)
mediaset_green(newpixel,new_green)
mediaset_blue(newpixel,new_blue)
return newpic
def reduce_height(pic, factor):
'''return a new pic that has been compressed vertically by the factor which has been set
'''
# Create a new, all-black pic with the appropriate new height and
# old width; (all colour components are zero)
new_width = picget_width
new_height = (picget_height() - 1) / factor + 1
newpic = mediacreate_pic(new_width, new_height, mediablack)
# Iterate through all the pixels in the original (large) image, and copy
# a portion of each pixel's colour components into the correct
# pixel position in the smaller image
for pixel in pic:
# Find the corresponding pixel in the new pic
x = mediaget_x(pixel)
y = mediaget_y(pixel)
newpixel = mediaget_pixel(newpic, x, y / factor)
# Add the appropriate fraction of this pixel's colour components
# to the components of the corresponding pixel in the new pic
new_red = newpixelget_red()+pixelget_red()/factor
new_green = newpixelget_green()+pixelget_green()/factor
new_blue = newpixelget_blue()+pixelget_blue()/fctor
mediaset_red(newpixel,new_red)
mediaset_green(newpixel,new_green)
mediaset_blue(newpixel,new_blue)
return newpic
def reduce_width(pic,factor):
'''Return a newpic that has been horizontally compressed by the factor which has been set
'''
new_width = (mediaget_width() - 1) / factor + 1
new_height = mediaget_height()
newpic = mediacreate_pic(new_width, new_height, mediablack)
for pixel in pic:
x = mediaget_x(pixel)
y = mediaget_y(pixel)
new_pixel = mediaget_pixel(newpic, x / factor, y)
new_red = newpixelget_red() + pixelget_red() / factor
new_green = newpixelget_green() + pixelget() / factor
new_blue = newpixelget_blue() + pixelget()/factor
mediaset_red(newpixel, new_red)
mediaset_green(newpixel, new_green)
mediaset_blue(newpixel, new_blue)
return newpic
def distance(pixel1, pixel2):
red1 = mediaget_red(pixel1)
green1 = mediaget_green(pixel1)
blue1 = mediaget_blue(pixel1)
red2 = mediaget_red(pixel2)
green2 = mediaget_green(pixel2)
blue2 = mediaget_blue(pixel2)
sum = abs(red1 -red2) + abs(green1 - green2) + abs(blue1 - blu2)
return sum
def simple_difference(pic1, pic2):
for pixel in pic1:
x = mediaget_x(pixel)
y = mediaget_y(pixel)
pixel2 = mediaget_pixel(pic2, x, y)
sum = mediadistance(pixel, pixel2)
return sum
def smart_difference(pic1,pic2):
height1 = mediaget_height(pic1)
height2 = mediaget_height(pic2)
factorh = float(height1 / height2)
if factorh >= 1:
height1 = mediareduce_height(pic1, factorh)
else:
height2 = mediareduce_height(pic2, 1 / factorh)
width1 = mediaget_width(pic1)
width2 = mediaget_width(pic2)
factorw = float(width1 / width2)
if factorw >= 1:
width1 = reduce_width(pic1, factorw)
else:
width2 = reduce_width(pic2, 1 / factorw)
red1 = red_average(pic1)
green1 = green_average(pic1)
blue1 = blue_average(pic1)
red2 = mediascale_red(pic2, red1)
green2 = mediascale_green(pic2, green1)
blue2 = mediascale_blue(pic2, blue1)
#if __name__ == '__main__':
#mediashow(newpic)
以上就是关于c语言求亲密对数全部的内容,包括:c语言求亲密对数、蓝杯三十五、使用Python 制作对比图片相似度的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)